Hallo Zusammen,
Mein nächstes Problem habe ich mit meinen "Klugen Gegnern". Diese sollen insofern niemand in ihrer Sichtweite kommt ruhig zwischen zwei Punkten patrouillieren.
Wenn der Feind (also der Spieler) sich von hinten nähert soll er ihn nicht erkennen, falls er in die Augen schaut schon. Soweit klappt auch noch alles. Jetzt möchte ich falls dieser den Feind (Spieler) entdeckt
mit einem Lauftempo (hspeed=5.5 ; 0,5 schneller als der Spieler) Die Bewegung des Spielers Nachmacht (Springen,Leiter hochklettern, Gehen). Da sein Lauftempo schneller als das des Spielers ist wird er ihn unweigerlich irgendwann berühren, Und hierbei wird dann schaden am Spieler ausgelöst. Sollte der Spieler aber z.B einen Schnelligkeitstrank benutzen und aus dessen Reichweite rauskommen soll er weiter patrouillieren. Wie schaffe ich es das der Gegner die Bewegung vom Spieler schneller nachmacht?
Grundinfo: Mein Spiel ist ein 2d sidescrolling RPG, Es gibt zwei Spieler
Mein bisheriger Code:
Alles anzeigen
EDIT: umdrehen ist im alarm Event und ist das Patrouillieren.
Hier noch mein Alarm Event (beim Gegner) :
Mein nächstes Problem habe ich mit meinen "Klugen Gegnern". Diese sollen insofern niemand in ihrer Sichtweite kommt ruhig zwischen zwei Punkten patrouillieren.
Wenn der Feind (also der Spieler) sich von hinten nähert soll er ihn nicht erkennen, falls er in die Augen schaut schon. Soweit klappt auch noch alles. Jetzt möchte ich falls dieser den Feind (Spieler) entdeckt
mit einem Lauftempo (hspeed=5.5 ; 0,5 schneller als der Spieler) Die Bewegung des Spielers Nachmacht (Springen,Leiter hochklettern, Gehen). Da sein Lauftempo schneller als das des Spielers ist wird er ihn unweigerlich irgendwann berühren, Und hierbei wird dann schaden am Spieler ausgelöst. Sollte der Spieler aber z.B einen Schnelligkeitstrank benutzen und aus dessen Reichweite rauskommen soll er weiter patrouillieren. Wie schaffe ich es das der Gegner die Bewegung vom Spieler schneller nachmacht?
Grundinfo: Mein Spiel ist ein 2d sidescrolling RPG, Es gibt zwei Spieler
Mein bisheriger Code:
GML-Quellcode
- if (distance_to_object(Player)< 500 and ((Player.x < Goblin_Hauptmann.x && Goblin_Hauptmann.hspeed < 0) or (Player.x > Goblin_Hauptmann.x && Goblin_Hauptmann.hspeed > 0)) and round(Player.y) == (Goblin_Hauptmann.y +1)) or (distance_to_object(Player_2)< 500 and ((Player_2.x < Goblin_Hauptmann.x && Goblin_Hauptmann.hspeed < 0) or (Player_2.x > Goblin_Hauptmann.x && Goblin_Hauptmann.hspeed > 0)) and round(Player_2.y) == (Goblin_Hauptmann.y +1))
- {
- umdrehen= false
- if distance_to_object(Player) < 500
- {
- if Player.x > x
- {
- sprite_index = Goblin_Hauptmann_rechts
- hspeed= 5.5
- }
- else
- {
- sprite_index = Goblin_Hauptmann_links
- hspeed=-5.5
- }
- }
- else
- {
- if Player_2.x > x
- {
- sprite_index = Goblin_Hauptmann_rechts
- }
- else
- {
- sprite_index = Goblin_Hauptmann_links
- }
- }
- }
- else
- {
- if hspeed > 0
- sprite_index = Goblin_Hauptmann_rechts
- else
- sprite_index = Goblin_Hauptmann_links
- umdrehen= true
- if hspeed == 5.5 or hspeed == -5.5
- {
- if sprite_index == Goblin_Hauptmann_rechts
- {
- hspeed=1.5
- }
- else
- {
- hspeed=-1.5
- }
- }
- }
EDIT: umdrehen ist im alarm Event und ist das Patrouillieren.
Hier noch mein Alarm Event (beim Gegner) :
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Matce ()