instance_nearest

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

    • instance_nearest

      Hallöle!

      Ein Problem, das immer wieder auftaucht, ist das mit instance_nearest. Schreibt man folgendes in ein Objekt:

      GML-Quellcode

      1. abc=instance_nearest(x,y,object_index);

      wird die eigene Instanz ausgegeben, da sie, logischerweise, näher an sich dran ist, als alle anderen. Ich möchte jedoch nicht die eigene herausfinden, sondern sozusagen die zweitnächste. Dazu hab ich mir folgendes gedacht:

      GML-Quellcode

      1. var xx,yy,sobj,obj,iid;
      2. xx=argument0;
      3. yy=argument1;
      4. sobj=argument2;
      5. for (i=0;i<instance_number(sobj);i+=1)
      6. {
      7. obj=instance_find(sobj,i);
      8. if obj!=self
      9. {
      10. if i=0
      11. {
      12. dis=point_distance(xx,yy,obj.x,obj.y);
      13. iid=obj;
      14. }
      15. else if point_distance(xx,yy,obj.x,obj.y)<dis
      16. {
      17. dis=point_distance(xx,yy,obj.x,obj.y);
      18. iid=obj;
      19. }
      20. }
      21. }
      22. return iid;
      Alles anzeigen

      Trotzdem wird wieder die eigene Instanz herausgegeben. Wo ist mein Denkfehler?
      kostenlose Android-Spiele:
      hexavirScribble Triple

      Mr. Peperonico auf Facebook
    • Ersetze mal in Zeile 10 self durch id. Ich weiß nicht was self überhaupt ist, aber das was du willst mach ich immer mit id. id enthält die instanz ID des aktuellen Objektes, und wenn du die mit dem ergebnis von instance_find vergleichst, sollte das funktionieren. Kann aber auch sein, dass ich mich da täusche und es mit self genauso geht.
      “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

      Ich schreibe mit Neo.