|
Events und Highscore
#188766
03/16/08 12:57
03/16/08 12:57
|
Joined: Feb 2008
Posts: 23 BW, Germany
xakac
OP
Newbie
|
OP
Newbie
Joined: Feb 2008
Posts: 23
BW, Germany
|
Hallo Leute, habe folgendes Problem: in meinem Spiel schieße ich mit einem Lichstrahl verschiedene Entities ab. In Abhängigkeit davon, was es für eine Entity ist, gibt es unterschiedliche Punktezahl für den Abschuss. Solange die Entities eine nach der anderen erscheinen, ist das kein Problem. Wenn aber mehrere auf einmal kommen und ich die abschieße, zählt der Highscore irgendein Schwachsinn und ich kann nicht rauskriegen warum oder was habe ich falsch gemacht. Ist evtl. die Switch-Anweisung nicht das Richtige?
Hier mein Code für den Lichstrahl:
// Funktion für den Strahl function strahlEvent(){ wait(1); if(key_space){ // wenn Leertaste gedrück (Strahl an) switch(you) { case ent_tropfen: highscore += 10; ent_remove(you); break; case ent_batterie: highscore += 50; ent_remove(you); break; case ent_stern: highscore +=100; ent_remove(you); break; } } }
// Aktion, die die Funktion strahlEvent aufruft action strahlAction(){ while(1){ my.y = ent_lamp.y; // y-Position des Strahls ist identisch mit der der Lampe // Strahl ausblenden if(!key_space){ set(my, TRANSLUCENT | PASSABLE); // Strahl durchscheinend machen und Kollisionserkennung abgeschalten my.alpha = 0; // Setzen des Transparenzwertes vom Strahl (unsichtbar) } // Strahl einblenden if(key_space){ reset(my, TRANSLUCENT | PASSABLE); // Strahl reseten = Kollisionserkennung AN und sichtbar my.alpha = 100; // Setzen des Transparenzwertes vom Strahl (sichtbar) my.emask |= ENABLE_IMPACT; // mache Strahl für Kollisionen empfindlich my.event = strahlEvent; // starte die Funktion strahlEvent, wenn Strahl mit etwas kollidiert soundHandle = snd_play(sndLichtstrahl, 10, 0); // Startup-Sound abspielen } wait(1); } }
|
|
|
Re: Events und Highscore
[Re: RedPhoenix]
#199787
04/01/08 11:24
04/01/08 11:24
|
Joined: Feb 2008
Posts: 23 BW, Germany
xakac
OP
Newbie
|
OP
Newbie
Joined: Feb 2008
Posts: 23
BW, Germany
|
OK, danke! ich versuch`s ohne. aber es hieß doch in den tutorials, daß ich immer vor einem ent_remove(); ein wait(1) setzen sollte... z.B. so funkzts auch nicht: / Funktion für den Strahl function strahlEvent(){ switch(you) { case ent_tropfen: highscore += 10; wait(1); ent_remove(you); break; case ent_batterie: highscore += 50; wait(1); ent_remove(you); break; case ent_stern: highscore +=100; wait(1); ent_remove(you); break; } } aber der Code an sich so ist in Ordnung? Oder sind alle wait(1) zu entfernen? Bin grad in der Firma und kann es nicht sofort austesten
|
|
|
|