instance_nearest selbes Object suchen

  • GM 6

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

  • instance_nearest selbes Object suchen

    Hallo zusammen!

    Ich stehe vor folgendem Problem:
    Mit der Funktion instance_nearest möchte ich wissen herausfinden, welche Instanz von demselben Objekt am nächsten an dieser Instanz liegt. Mit anderen Worten habe ich z.B. drei Instanzen eines Objekts. Jede dieser Instanzen soll nun abfragen, welches der beiden anderen Instanzen näher liegt.

    Das Problem ist aber, dass distance_to_object(instance_nearest(x, y, obj_object)) immer 1000000 ausgibt und zwar von jeder Instanz. Die Entfernung zwischen den Instanzen spielt dabei auch keine Rolle.

    Woran könnte das liegen und wie ist das am einfachsten zu beheben?
    Danke im Voraus!


    MfG flogy
  • Naja die ausführende Instanz ist logischerweise die näheste. Ich würde das mit einer For-Schleife lösen und innerhalb von dieser die Distanz abfragen.
    Wenn diese Distanz kleiner ist als die bisher gespeicherte, wird die id der Instanz in eine Variable gespeichert und die Distanz aktualisiert.

    © 2008 by Teamgrill Productions
  • point_distance(x,y,instance_nearest(x, y, obj_object).x, instance_nearest(x, y, obj_object).y)
    edit: Frage falsch verstanden..

    Vorposter hatte natürlich vollkommen recht.

    Quellcode

    1. smallest = 0
    2. for(...)
    3. instance_find
    "das war meine letzte flamewar PM an dich ."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von blubberblub ()

  • Ich hatte auch mal ein ähnliches Problem und habe schlussendlich diese recht schnelle Lösung gefunden:
    Create Event (obj_suchen):

    GML-Quellcode

    1. iid=id;//iid enthält später die nächste Instanz

    Alarm0 Event oder einfach dort wo die nächste Instanz gesucht werden soll (obj_suchen):

    GML-Quellcode

    1. instance_change(obj_temp,true);

    Create Event (obj_temp):

    GML-Quellcode

    1. //hier wird die nächste Instanze gesucht, die Instanz selber ist aber nicht mehr vom Objekt obj_suchen
    2. iid=instance_nearest(x,y,obj_suchen);
    3. instance_change(obj_suchen,false);//und wieder zurückwechseln


    PS: Die Distanz ist 1000000 weil du ne Instanz-ID und nicht eine Objekt-ID eingesetzt hast.
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Benutzer online 1

    1 Besucher