3 registered members (NewbieZorro, TipmyPip, 1 invisible),
19,045
guests, and 8
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: function stoppen
[Re: Keksbuster]
#77726
06/14/06 15:02
06/14/06 15:02
|
Joined: Feb 2005
Posts: 3,687 Hessen, Germany
Tempelbauer
Expert
|
Expert
Joined: Feb 2005
Posts: 3,687
Hessen, Germany
|
exakt. wobei die letztere methode nicht sonderlich sauer ist. break sollte man wenn möglich vermeiden. generell um ne funktion zu stoppen gibts return; man kann auch einen parameter des typs var übergeben. damit kann man z.B. prüfen, ob fehler auftauchen: Code:
function test() { ... //tu was if( a==4 ) { return 0; //a ist 4 und das hat eine fatale wirkung auf die funktion, also beenden wir sie und teilen das anderen funktionen mit } else { return 1; //alles plaetti } }
Die funktion gibt nun 0 zurück im fehlerfall und 1 im regulären, akzeptablen fall Code:
var i; function main() {
... i = test(); //i enthält nun 1 oder 0, je nach fall if(i == 0) { //melde dem user dasn fehler aufgetaucht is } }
|
|
|
Re: function stoppen
[Re: Tempelbauer]
#77727
06/14/06 15:41
06/14/06 15:41
|
Joined: Apr 2005
Posts: 2,332 Germany, BaWü
aztec
OP

Expert
|
OP

Expert
Joined: Apr 2005
Posts: 2,332
Germany, BaWü
|
gibte es eine möglichkeit in diesm script Code:
// Strings and filenames // change this string to your own starting mission message. string mission_str = "Fight your way through the level. Press [F1] for help"; string level = <irrgarten.wmb>; string schaffen ="Kannst du das Ziel in der Zeit finden?"; string schade ="schade die Zeit ist aber Abgelaufen\n ESC drücken um zu beenden"; string gut ="Super du hast das Ziel erreicht\nDanke das du es gespielt hast"; sound peep <beep.wav>; sound hurry <harry.wav>; var count_down = 200; var_nsave wavhandle; bmap les =<les.bmp>;
///////////////////////////////////////////////////////////////// // The main() function is started at game start
font simple = "arial",0,40;
text nein { font = simple; string = schade; }
function zeit_abziehen { while (count_down > 0) { wavhandle = snd_play(peep,50,100); if(count_down < 10) { snd_stop(wavhandle); snd_play(hurry,50,100); } count_down -= 1; sleep(1); } if(count_down == 0) { nein.pos_x = 80; nein.pos_y = 100; nein.visible = on; } }
panel anfang { bmap = les; flags = d3d, refresh; } panel zeit { pos_x =20; pos_y =20; digits = 20, 20, 3, simple, 1, count_down; flags = visible; layer = 21; }
text Versuch { font = simple; string = schaffen; }
function main { anfang.pos_x = (screen_size.x - bmap_width(les))/2; anfang.pos_y = (screen_size.y - bmap_height(les))/2; anfang.visible = on; wait(3); level_load(level); freeze_mode = 1; sleep(1); anfang.visible = off; freeze_mode = 0; Versuch.pos_x = 80; Versuch.pos_y = 100; Versuch.visible = on; sleep(1); Versuch.visible = off; zeit_abziehen(); }
function ende { exit; } on_esc = ende; }
function ziellinie { if(event_type == event_impact) { count_down = 50; } }
action ziel { my.enable_impact = on; my.event = ziellinie; } bei function ziellinie die function count_down irgendwie zu stoppen?
Visit: schwenkschuster-design.de
|
|
|
Re: function stoppen
[Re: aztec]
#77728
06/14/06 15:48
06/14/06 15:48
|
Joined: Jul 2002
Posts: 4,436 Germany, Luebeck
Xarthor
Expert
|
Expert
Joined: Jul 2002
Posts: 4,436
Germany, Luebeck
|
Ja einfach: count_down = 0; in die function ziellinie schreiben. Desweiteren brauchst du allerdings noch eine variable um zu überprüfen ob der countdown nun abgebrochen wurde, weil der spieler die ziellinie passiert hat, oder aber weil er zu lange gebraucht hat. Dies könntest du auch lösen, indem du count_down auf z.b. -10 setzt und dann überprüfst ob count_down < -5 ist, wenn ja dann hat er die ziel linie passiert, wenn nicht, ist die zeit abgelaufen.
|
|
|
Re: function stoppen
[Re: broozar]
#77730
06/14/06 17:47
06/14/06 17:47
|
Joined: Apr 2005
Posts: 2,332 Germany, BaWü
aztec
OP

Expert
|
OP

Expert
Joined: Apr 2005
Posts: 2,332
Germany, BaWü
|
Ich hätte noch ne idee wenn der Spieler die Ziellinie passiert setze ich die var einfach auf minus -10 zb. in einer while schleife: if(die_var == -10) { macht den sieger Text sichtbar und blende den counter aus } glaubt ihr dass das auch so gehen würde?  //////////////////////////////////////////////////////////////////////////////// Ich habe es einfach mal getestet und ich habe es geschafft ist ganz einfach gewesen in die function ziellinie einfach dasshier rein Code:
function ziellinie { if(event_type == event_impact) { count_down = -10; } if(count_down == -10) { zeit.visible= off; } } Juhu ganz alleine langsam wirds was mit dem Scripten und proggen
Last edited by Star_Fox; 06/14/06 17:53.
Visit: schwenkschuster-design.de
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|