Hihi
Ich hab mich an Gegnern versucht die in einem Labyrinth an Kreuzungen/Ecken etc. immer zufällig weiter laufen. Aber nicht zurück (außer bei Sackgassen).
Da hab ich mich, da ich es nicht besser wusste, an diesem langen code versucht Beinhalten bisher nur die abfrage beim hoch und runterlaufen.
Beim hoch laufen klappt es ganz gut nur bei runter laufen nicht xD
Spoiler anzeigen
Alles anzeigen
Irgendwann ist mir dann eigefallen das die Gegner bei pacman genauso sind und hab mir das gm6 example davon geladen. Doch da blick ich nicht durch:
Spoiler anzeigen
Alles anzeigen
Kann mir das evt jemand erklären und mir begriffe geben denn nach ":=" oder "dir[0]" lässt sich schlecht suchen
Komisch ist bei meinen code die gegner nur abbiegen wenn spped z.B. 2 oder 4 ist. Bei speed = 3 biegen sie nicht ab. Wie kommt das? Ist das wie wenn man man sich mit jump bewegt?
Ach und falls es wer benötigt häng ich mal die gm8-datei ran.
Ich hab mich an Gegnern versucht die in einem Labyrinth an Kreuzungen/Ecken etc. immer zufällig weiter laufen. Aber nicht zurück (außer bei Sackgassen).
Da hab ich mich, da ich es nicht besser wusste, an diesem langen code versucht Beinhalten bisher nur die abfrage beim hoch und runterlaufen.
Beim hoch laufen klappt es ganz gut nur bei runter laufen nicht xD
GML-Quellcode
- if place_snapped(32,32) {
- // hoch
- if vspeed < 0 and hspeed = 0 {
- if place_free(x-32,y) and place_free(x,y-32) and place_free(x+32,y) { direction = choose(180,90,0)}
- if !place_free(x-32,y) and place_free(x,y-32) and place_free(x+32,y) { direction = choose(90,0)}
- if place_free(x-32,y) and !place_free(x,y-32) and place_free(x+32,y) { direction = choose(180,0)}
- if place_free(x-32,y) and place_free(x,y-32) and !place_free(x+32,y) { direction = choose(180,90)}
- if !place_free(x-32,y) and !place_free(x,y-32) and place_free(x+32,y) { direction = choose(0)}
- if place_free(x-32,y) and !place_free(x,y-32) and !place_free(x+32,y) { direction = choose(180)}
- if !place_free(x-32,y) and place_free(x,y-32) and !place_free(x+32,y) { direction = choose(90)}
- if !place_free(x-32,y) and !place_free(x,y-32) and !place_free(x+32,y) { direction = choose(270)}
- // runter
- if vspeed > 0 and hspeed = 0 {
- if place_free(x-32,y) and place_free(x,y+32) and place_free(x+32,y) { direction = choose(180,270,0)}
- if !place_free(x-32,y) and place_free(x,y+32) and place_free(x+32,y) { direction = choose(270,0)}
- if place_free(x-32,y) and !place_free(x,y+32) and place_free(x+32,y) { direction = choose(180,0)}
- if place_free(x-32,y) and place_free(x,y+32) and !place_free(x+32,y) { direction = choose(180,270)}
- if !place_free(x-32,y) and !place_free(x,y+32) and place_free(x+32,y) { direction = choose(0)}
- if place_free(x-32,y) and !place_free(x,y+32) and !place_free(x+32,y) { direction = choose(180)}
- if !place_free(x-32,y) and place_free(x,y+32) and !place_free(x+32,y) { direction = choose(270)}
- if !place_free(x-32,y) and !place_free(x,y+32) and !place_free(x+32,y) { direction = choose(90)}
- }
- }
- }
Irgendwann ist mir dann eigefallen das die Gegner bei pacman genauso sind und hab mir das gm6 example davon geladen. Doch da blick ich nicht durch:
GML-Quellcode
- dir[3]:=place_free(x,y+16);
- dir[2]:=place_free(x-16,y);
- dir[1]:=place_free(x,y-16);
- dir[0]:=place_free(x+16,y);
- move:=0;
- direc:=direction;
- for(i:=0; i<360; i+=90)
- {
- if i!=(direction+180)mod(360) and dir[i/90] then
- {
- if floor(random(move+1))=0 then
- {
- direc:=i;
- }
- move+=1;
- }
- }
- direction:=direc;
- if move=0 then
- {
- direction:=(direction+180)mod(360);
- }
- alarm[0]:=8;
- speed:=2;
Kann mir das evt jemand erklären und mir begriffe geben denn nach ":=" oder "dir[0]" lässt sich schlecht suchen
Komisch ist bei meinen code die gegner nur abbiegen wenn spped z.B. 2 oder 4 ist. Bei speed = 3 biegen sie nicht ab. Wie kommt das? Ist das wie wenn man man sich mit jump bewegt?
Ach und falls es wer benötigt häng ich mal die gm8-datei ran.
Und es gibt jede Menge Rechtschreibfehlern.