MFC MiniGame Backgroundsound !
-
// EDIT:
ES GEHT NUR NOCH UM DEN BACKGROUND SOUND SOWIE FARBE
BITTE LETZTEN POST LESEN
Hallo,
ich habe die Aufgabe in Programmieren 2 ein MFC minigame
zu basteln, allerdings habe ich noch nicht wirklich so große
erfahrungen mit MFC gemacht.. Leider finde ich unter google
kein passendes Tutorial oder der gleichen.Kennt vllt jemand ein gutes Buch oder besser noch ein Tutorial für
ein MFC minigame ?
Unter minigame verstehe ich sowas wie: schnick schnack schnuck oder memory.Über Hilfe würd ich mich freun,
Danke
-
arbeite erst mal ein ganz normales MFC tutorial durch, danach kannst du auch malen
ach ja du brauchst Visual Studio
-
nee ja habe ich schon gemacht,
visual studio habe ich die 2008 version,habe mich jetzt an ein schnick schnack schnuck
spiel rangewagt, allerdings klappt es nicht so ganz..Wenn jemand interesse hat, uploade ichs gerne mal
-
Das mit dem Forum "klappt so auch nicht ganz":
Man stellt konkrete Fragen und erhält (meistens) die passenden Antworten und Tipps.Mit der Aussage "klapp nicht so ganz" kann hier keiner was anfangen. Was genau funktioniert nicht? Bei welchem Schritt steckst Du fest?
-
Ja okay stimmt,
also ich möchte gerne eine Memory in MFC machen,
Ich habe soweit die Oberfläche fertig gestellt..
allerdings, weiss ich nicht wie ich da code technisch rangehen soll.
Ich möchte es wirklch simpel halten :Die Bilder werden random verteilt
4 Paare sind geplant
wenn man nacheinander 2 richtige aufdeckt, dann bleiben sie aufgedeckt.
Es gibt einen Counter der von 1 bis 4 hochzählt, pro richtiges Paar
anzeigt dass man Quasi einen Punkt gewonnen hat..Ich habe ja auch nach einem Tutorial gefragt, meine aufgabe
ist ein kleines Minigame mit MFC zu erstellen, es ist egal
was für eins.. Ich denke mal, dass mit randomfunktionen eigl Memory
eine gute Wahl war. !
-
Also das MFC Interface ist soweit fertig,
wenn ich jetzt auf Schwert, Schild oder Stab klicke,
dann ändert er das Symbol weiter links auch.Nun möchte ich eine Funktion einbauen, in der, der
Computer auf einen klick Reagiert,
Diese Funktion heisst Knoble:Ich habe aus meinem Skript mal folgendes entnommen und umgeschrieben:
void BladesDlg::Knoble() { switch(rand()%3) { case SCHWERT: m_staticComputer.SetBitmap(m_hbitmapSchwert); m_zeichenComputer = SCHWERT; break; case SCHILD: m_staticRechner.SetBitmap(m_hbitmapSchild); m_zeichenComputer = SCHILD; break; case STAB: m_staticComputer.SetBitmap(m_hbitmapStab); m_zeichenComputer = STAB; } } if(m_zeichenSpieler == SCHWERT) { if(m_zeichenComputer == SCHILD) m_iComputer++; else if(m_zeichenComputer == STAB) m_iSpieler++; } else if(m_zeichenSpieler == SCHILD) { if(m_zeichenComputer == SCHWERT) m_iSpieler++; else if(m_zeichenComputer == STAB) m_iComputer++; } else if(m_zeichenSpieler == STAB) { if(m_zeichenComputer == SCHWERT) m_iComputer++; else if(m_zeichenComputer == SCHILD) m_iSpieler++; }
So diesen Code wollte ich in die Blades.cpp schreiben..
Bekomme jetzt aber immer diesen Fehler :
"'BladesDlg': Keine Klasse oder Namespace"
usw.. insgesammt 31..
Hier mal ein Bild
http://www.imagebanana.com/view/5di3w9e/MFC1.jpg
http://www.imagebanana.com/img/9zhfewjc/thumb/MFC2.jpg
http://www.imagebanana.com/img/baoe5dmc/thumb/MFC3.jpgWie binde ich den Code richtig ein ?
Danke,
-
Hi,
du kannst in der Klasse Blades() keine Funktionen für die Klasse BladesDlg definieren.
Es gibt zwei Möglichkeiten:
1. Du definierst die Funktion als Member der BladesApp(), läßt also das BladesDlg weg.
2. Du bindest oben schon den Header für BladesDlg ein. Dann erzeuge eine Instanz und greife darüber auf die Funktionen zu. Dann mußt du die Funktionen aber auch in BladesDlg definieren.CBldesDlg dlg; . . . dlg.Knoble(); . .
Mfg
Wilfried
-
soo,
danke für den tip,
es ist nun alles eingebunden..
Jetzt wollte ich noch einen "Gewonnen" Counter einfügen..Habe dafür 2 edit control erstellt..
denen dann die Variablen m_iSpieler und m_iComputer hinzugefügt..Hier mal der Code:
//Der Zaehler ! void CBladesDlg::Zaehler() { if(m_zeichenSpieler == SCHWERT) { if(m_zeichenComputer == SCHILD) m_iComputer++; else if(m_zeichenComputer == STAB) m_iSpieler++; } else if(m_zeichenSpieler == SCHILD) { if(m_zeichenComputer == SCHWERT) m_iSpieler++; else if(m_zeichenComputer == STAB) m_iComputer++; } else if(m_zeichenSpieler == STAB) { if(m_zeichenComputer == SCHWERT) m_iComputer++; else if(m_zeichenComputer == SCHILD) m_iSpieler++; }
Jetzt habe ich nur 3 Fehler:
\blades\blades\bladesdlg.cpp(220) : error C2676: Binärer Operator '++': 'CString' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nichtBei allen 3 ...
Er bemängelt m_iSpieler++; ...Wisst ihr weiter ?
-
Also ich habe es nun geschafft,
eine Ki einzubauen und einen Punktezähler..
siehe Bild..
Nun möchte ich noch den Hintergrund verändern, bzw.
durch ein Bild ersetzen oder die Farbe ändern.Dann möchte ich eine Backgroundmidi soundfile abspielen ?
Wie realisiere ich das ?
MFG
-
Also hier nochmal ein weiteres Beispiel..
habe jetzt;
1. Unter Ressourcen die Sound indiana3.wav eingebunden.
2. Die Sachen in die Lib included..
3. den Befehl Playsound geschrieben.. aber wo muss der eigl hin ?
(PlaySound("indiana3.wav",NULL,SND_FILENAME|SND_ASYNC);)Bekomme nun diesen Fehler
1>d:\desktop nicht löschen\mfc anwendung\schwert-schild-stab\swords\swords\swordsdlg.h(21) : error C2059: Syntaxfehler: 'Zeichenfolge'
hier ein Bild
http://www.imagebanana.com/view/gbf7js4b/MFC5.jpg///...
wird sich doch mal einer finden, der das weiss..
glaube nichtm, dass es so schwer ist !
-
na setz doch den Playsound da hin wo alles im Dialog Initialisiert wird, also in OnInitDialog.
Seit wann wird denn ne Funktion einfach so im Headerfile geschrieben, hast du dich irgendiwe mal mit C++ beschäftigt oder versuchst du irgendwas zusammen zu pfriemeln. Denn so kommt mir deine Frage vor.
-
doch seid 2 monaten..
also noch nicht sehr viel...error C2664: 'PlaySoundW': Konvertierung des Parameters 1 von 'const char [13]' in 'LPCWSTR' nicht möglich
das ist jetzt der fehler den ich bekomme.. immerhin von 4 auf einen Fehler geschrumpft..
-
du hast nen Unicode Projekt also
PlaySound(_T("indiana3.wav"),NULL,SND_FILENAME|SND_ASYNC);
sollte das Problem beheben, aber mit der Suche währst du auch drauf gekommen, kommt andauernd die Frage
-
"PlaySound" kommt nicht in die Header-Datei, sondern in die Quellendatei und wird da eingefügt, wo der Sound gespielt werden soll.
"PlaySound" ist eine Multimedia-API-Funktion die schon definiert ist. Eine abermalige Definition in einer Deiner Header-Dateien ist nicht nötig.