Hi!
Ich bin gerade dabei einen Loginscreen zu schreiben. da cih neueinsteiger in Irrlicht bin, kommt gleich mal ne Frage, die sich bestimmt ganz leicht klären lässt^^
Und zwar:
Mein login überprüft bisher ncoh nix, es soll nur schonmal das gerüst fertig sein. D.h. aktuell nimmt er jegliche logindaten an, ohne diese zu prüfen.
So. Wenn man nun auf login klickt wechselt der Programmstatus (eine interne Variable) auf STATE_GAME_LOGGING_IN (Wert 5), was ich in der while schleife über ein switch asuwerte.
Ich poste mal relevante Codeausschnitte:
Code:
int main()
{
...
sound->play2D("data/sound/music/loginscreen.ogg",
true, false, true, ESM_AUTO_DETECT, true); //<---Hier für mein apropos. am ende des Beitrages
...
guienv->addButton(rect<s32>(425,402,575,423), 0, BTN_LOGINSCREEN_LOGIN, L"Login", L"Spiel starten");
guienv->addEditBox(L"", rect<s32>(474, 346, 610, 365),true,0,TXTLN_LOGINSCREEN_LOGIN);
guienv->addEditBox(L"", rect<s32>(474, 376, 610, 395),true,0,TXTLN_LOGINSCREEN_PASS)->setPasswordBox(true);
//To look at the mesh, we place a camera into 3d space at the position
//(0, 30, -40). The camera looks from there to (0,5,0).
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); //Ist an der stelle iegentlich schwacsinnig, da bisher eh alles 2D ist^^
while(device->run())
{
driver->beginScene(true, true, SColor(255,100,101,140));
switch(gamestate) {
...
case STATE_GAME_LOGING_IN: //Loginsscreen Background
//guienv->removeAll(); //Formular und Hintergrund etc entfernen
/*******************
Und hier sollen nun die Formularfelder aus dem Bildschirm verschwinden.
*******************/
gamestate = STATE_GAME_CHAR;
break;
...
case STATE_GAME_INGAME:
sound->stopAllSounds(); //<---Hier für mein apropos. am ende des Beitrages
break;
}
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
return 0;
}
So. Ich bruahc also irgendwie pointer auf die GUIElemente? und dann über die pointer die dinger löschen.
Wäre nett, wenn mir das einer kurz einbauen könnte, und mir erklären würde, was dabei was macht.
Apropos: Ich nutze Irrklang. Wenn das Programm startet, startet eine SoundLoop mit. Mit Stop() kann man angeblich einzelne sounds beenden. Wie wird dieser Befehl richtig angewandt? Hier brauch ich ebenfalls einen pointer, oder nicht? (auch dieses problem steckt oben!)
------------
Sry wegen Tippfehlern, meine Tastatur iss leer (Batterie), mir tun die Hände weh und ich penn gleich ein. Gute Nacht! ^^