2016-12-20 4 views
1

Die KI meiner Feinde, die ich für mein Spiel gemacht habe, ist einfach. Sie folgen einfach den Player (genauer gesagt, sie schauen in die Richtung des Spielers und vorwärts gehen)Feinde überlappen in Game Maker: Studio, wie behebe ich das?

Step Event: 

    if (instance_exists(obj_player)){ 
     direction = point_direction(x,y,obj_player.x,obj_player.y); 
    } 

    speed = spd; 

Aber sie halten auf einander überlappen und gehen auf dem Player. Ich habe versucht zu recherchieren, aber alle Foren sagten, war zu verwenden place_free() und xprevious & Yprevious, aber ich habe keine Ahnung, wie man sie benutzt. Wie behebe ich das?

Thanks :)

Antwort

0

Sie dazu auf der Spielmacher-Dokumentation lesen: https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/place_free.html

im Grunde, was Sie wollen, bewegen Sie die Instanz zu tun ist, zu vermeiden, wenn das eine Kollision bedeutet verursacht. x_previous und y_previous werden verwendet, um die Bewegung abzubrechen, indem Sie zur vorherigen Position zurückkehren.

Aber ich denke, es ist besser, den Ort zu überprüfen, bevor er, so würde ich am Ende Sie Skript hinzu:

if (place_free(x+hspeed, y+vspeed)) speed = spd; 
else speed = 0; 

auf diese Weise wird die ennemy stoppen stattdessen über eine andere Instanz zu treten.

Ein kleines Upgrade wäre das Folgende: Wenn eine Kollision erkannt wird, prüfen Sie, ob Sie sich stattdessen entlang einer einzelnen Achse bewegen können (x oder y) und tun Sie es.

Verwandte Themen