Hallöle!
Ein Problem, das immer wieder auftaucht, ist das mit instance_nearest. Schreibt man folgendes in ein Objekt:
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:
Alles anzeigen
Trotzdem wird wieder die eigene Instanz herausgegeben. Wo ist mein Denkfehler?
Ein Problem, das immer wieder auftaucht, ist das mit instance_nearest. Schreibt man folgendes in ein Objekt:
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
- var xx,yy,sobj,obj,iid;
- xx=argument0;
- yy=argument1;
- sobj=argument2;
- for (i=0;i<instance_number(sobj);i+=1)
- {
- obj=instance_find(sobj,i);
- if obj!=self
- {
- if i=0
- {
- dis=point_distance(xx,yy,obj.x,obj.y);
- iid=obj;
- }
- else if point_distance(xx,yy,obj.x,obj.y)<dis
- {
- dis=point_distance(xx,yy,obj.x,obj.y);
- iid=obj;
- }
- }
- }
- return iid;
Trotzdem wird wieder die eigene Instanz herausgegeben. Wo ist mein Denkfehler?