[Ungelöst] Bewegung Nachmachen überhaupt möglich?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [Ungelöst] Bewegung Nachmachen überhaupt möglich?

    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:

    GML-Quellcode

    1. 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))
    2. {
    3. umdrehen= false
    4. if distance_to_object(Player) < 500
    5. {
    6. if Player.x > x
    7. {
    8. sprite_index = Goblin_Hauptmann_rechts
    9. hspeed= 5.5
    10. }
    11. else
    12. {
    13. sprite_index = Goblin_Hauptmann_links
    14. hspeed=-5.5
    15. }
    16. }
    17. else
    18. {
    19. if Player_2.x > x
    20. {
    21. sprite_index = Goblin_Hauptmann_rechts
    22. }
    23. else
    24. {
    25. sprite_index = Goblin_Hauptmann_links
    26. }
    27. }
    28. }
    29. else
    30. {
    31. if hspeed > 0
    32. sprite_index = Goblin_Hauptmann_rechts
    33. else
    34. sprite_index = Goblin_Hauptmann_links
    35. umdrehen= true
    36. if hspeed == 5.5 or hspeed == -5.5
    37. {
    38. if sprite_index == Goblin_Hauptmann_rechts
    39. {
    40. hspeed=1.5
    41. }
    42. else
    43. {
    44. hspeed=-1.5
    45. }
    46. }
    47. }
    Alles anzeigen


    EDIT: umdrehen ist im alarm Event und ist das Patrouillieren.
    Hier noch mein Alarm Event (beim Gegner) :

    GML-Quellcode

    1. if umdrehen == true
    2. {
    3. hspeed = -hspeed
    4. alarm[0]= 100
    5. }
    6. else
    7. {
    8. alarm[0]= 100
    9. }

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Matce ()

  • Ja du kannst immer einen "Schatten" als Spieler hinterlassen, zB beim springen oder raufklettern oder in regelmäßigen Abstand beim rennen. Der Hauptmann sucht immer nach INstance_nearest Schatten und rennt dort hin. Entweder checkt der Hauptmann selber das er springen muss wenn da eine bestimmte Isntanz vor ihm ist über die er springen müsste. Oder der Schatten bekommt je nachdem was der Spieler an der stelle gemacht hat eine bestimmte Variable, wenn der Hauptmann jetzt mit dem Schatten kollidiert dann beommt er die Variable selbst und führt die Aktion aus.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Das mit dem Schatten klingt schon gut.
    Doch ich frage mich, ob das auch noch geht, wenn der Hauptmann schneller als der Spieler ist.
    Denn dann sind die Positionen ja nicht auf den Pixel genau gleich...
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Benutzer online 1

    1 Besucher