nächste gleiche Instanz finden

  • GM 8

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

  • nächste gleiche Instanz finden

    Hallo Leute,

    ich habe mal versucht mittels folgendem Code die nächste Instanz zu ermitteln
    Im Create-Event:

    GML-Quellcode

    1. ziel=instance_id[0] //die Instanz, bei der angefangen wird zu überprüfen
    2. abstand=9999999 //der Abstand am Anfang ist groß gewählt, da später der Abstand mit einem kleineren ersetzt werden soll
    3. check=0 //irgendeine Variablenzuweisung um Fehler vorzubeugen


    und im Step Event

    GML-Quellcode

    1. for (i=0;i<instance_count;i+=1) //ich überprüfe die 0. Instanz bis zur i+ersten Instanz
    2. {
    3. check=instance_id[i]; //ich fange mit Instanz 0 an und setze diese für mein check
    4. if check.object_index==obj_builder //wenn mein check eine meiner gesuchten Instanzen des objektes obj_builder ist dann geht's hier weiter
    5. {
    6. if distance_to_object(check)<abstand //wenn die Distanz zu meiner gerade untersuchenden Instanz kleiner als mein abstand ist (zum Anfang also kleiner als 99999, dann....
    7. {
    8. abstand=distance_to_object(check) //...setze ich dies als meinen neuen abstand
    9. ziel=check //und mein Ziel ist diese Instanz
    10. }
    11. }
    12. // }
    Alles anzeigen


    Im Draw Event habe ich dann überprüft, welche Instanz denn jetzt unser Ziel ist

    GML-Quellcode

    1. draw_line(x,y,ziel.x,ziel.y) //hier zeichne ich zur Überprüfung eine Linie von der Instanz zu dem als Ziel definierten Instanz, welche die näheste sein sollte


    so sieht jedenfalls der Wunsch aus.
    Zu Anfang wird auch eine Linie zum nächsten Objekt gezeichnet. Jede Instanz von obj_builder zeichnet am Anfang eine Linie zu der ihr nächsten Instanz. Allerdings, wenn der Fall eintritt, dass eine andere Instanz näher kommt, wechselt die Linie nur wenn überhaupt, sehr spät zu der neuen nähesten Instanz.
    Ich bin echt am Verzweifeln warum das so ist und komme nicht drauf.
    Wird vielleicht die For-Schleife in meinem Step Event nicht oft genug durchlaufen??

    Vielen Dank schonmal für Eure Hilfe!


    __________________________________________________________________________________________
    EDIT: Okay i got it.
    Wen es interessiert, das hier muss ins Step Event:

    GML-Quellcode

    1. for (i=0;i<instance_count;i+=1)
    2. {
    3. check=instance_id[i];
    4. if check.object_index==obj_builder
    5. {
    6. if distance_to_object(check)<abstand
    7. {
    8. ziel=check
    9. }
    10. }
    11. abstand=distance_to_object(ziel)
    12. }
    Alles anzeigen


    dann wird nämlich am Ende des Steps immer noch die Variable abstand auf den aktuellen Wert von distance_to_object() gesetzt.
    Trotzdem danke an alle...top Forum hier! :thumbsup:

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