MFC MiniGame Backgroundsound !
-
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.