Nächten Node finden und Objekt anbinden

Posted By: Yamm

Nächten Node finden und Objekt anbinden - 11/10/14 18:39

Ich habe einen Pfad mit einigen Nodes. Daran will ich Objekte entlang laufen lassen, allerdings soll jedes Objekt an einem anderen Node starten. Da ich möglichst eine Action für all diese Objekte haben will, wäre es toll, wenn das Objekt selber schauen könnte, welcher Node der nächste ist und von da an die Bewegung aufnimmt. Verwende ich Beispielsweise:

path_set(_ent, _pathName);
path_setnode(my,my.x,my.y,0);

dann starten alle Objekte vom ersten Node des Pfades. Wie bekomme ich es hin, dass jedes Objekt von dem Node aus startet, an dem ich es im WED platziert habe?
Posted By: Feindbild

Re: Nächten Node finden und Objekt anbinden - 11/11/14 13:49

mit einer Schleife durch alles Nodes durchgehen, jedes mal vergleichen ob der Abstand zwischen der Node und dem Objekt kleiner ist als der zuletzt gespeicherte, wenn ja, diesen Abstand und diese Note merken und weiter vergleichen.
Posted By: Yamm

Re: Nächten Node finden und Objekt anbinden - 11/11/14 17:34

Klingt super. Sobald ich dazu komme versuche ich es mal und poste das Resultat. Danke!
Posted By: Yamm

Re: Nächten Node finden und Objekt anbinden - 11/11/14 20:31

So, habe nun lange überlegt und probiert, habe aber noch ein kleines Problem. Ich versuche den Abstand über die Vektoren zu prüfen, zumindest war dies der Grundgedanke. Eine Koordinate wie x, y oder z reicht ja nicht, der Knoten kann ja sonstwo liegen. Nur: wie bekomme ich den Vektor eines Knotens heraus?
Posted By: MasterQ32

Re: Nächten Node finden und Objekt anbinden - 11/11/14 21:39

Code:
VECTOR a, b;
var dist = vec_dist(a, b);



Die Vektoren a und b müssen natürlich initialisiert sein wink
Posted By: Yamm

Re: Nächten Node finden und Objekt anbinden - 11/12/14 03:27

Danke, aber soweit war mir das klar. Nur, wie bekomme ich den Vector von einem Node überhaupt heraus?
Posted By: Kartoffel

Re: Nächten Node finden und Objekt anbinden - 11/12/14 05:56

Bin gerade nicht zuhause und kann deshalb nicht nach schauen.. Aber vllt gibt's was wie vec_for_path oder vec_from_path

Wow ich kann ja das online manual verwenden...
Schau mal unter engine functions => paths & regions nach.
Posted By: Yamm

Re: Nächten Node finden und Objekt anbinden - 11/12/14 10:53

Ja, genau da finde ich nichts entsprechendes, oder ich habe den Sachverhalt nicht verstanden. crazy
Posted By: Yamm

Re: Nächten Node finden und Objekt anbinden - 11/13/14 03:28

Ich hatte nun einen etwas anderen Ansatz, der zwar leider auch nicht geht, aber vielleicht erkennt ja jemand schnell den Fehler.

Ich dachte mir, wenn ich schon nicht den Vektor des Nodes heraus lesen kann, könnte ich ja das Objekt an jeden Knoten setzen und dann seine Position speichern. Die Differenz wird mit der ursprünglichen Position abgeglichen und am Ende wird der Knoten mit dem kürzesten Abstand zugewiesen.

Hier der entsprechende Code:

Code:
var sumnodes = 0;		// Summe aller Knoten
var node = 1;			// Nummer des verwendeten Knotens
VECTOR locVecNode, nodevec, myvec;
vec_set(nodevec, vector(0,0,0));
vec_set(myvec, vector(0,0,0));

if (_pathName)
{
	vec_set(myvec, _ent.x);
	sumnodes = path_set(_ent, _pathName);
	
	int i;
	var distance, distance2, temp;
	
	// Refferenzpunkt zu 1
	
	path_setnode(my,node,NULL, NULL);
	vec_set(nodevec, _ent.x);
	
	distance = vec_dist(myvec, nodevec);
	
	for (i = 0; i < sumnodes; i++)
	{
		path_setnode(my,i,NULL, NULL);
		vec_set(nodevec, _ent.x);
		distance2 = vec_dist(myvec, nodevec);
		
		if (distance2 < distance)
		{
			node = i;	
		}
		
	}
	
	path_setnode(my,node,NULL, NULL);
	
}

Posted By: Superku

Re: Nächten Node finden und Objekt anbinden - 11/13/14 11:23

Was soll

path_setnode(my,node,NULL, NULL);

überhaupt tun, my.x auf die node Position setzen? Das macht der Befehl nicht, guck noch mal ins Manual. Der (erste) Entity-Parameter ist einfach dazu da, den korrekten Pfad zu übergeben. Den dritten Parameter solltest du mit einem Vektoren (-Pointer) füllen, also bspw.:

path_setnode(my,node,nodevec, NULL);

Übrigens, die Knoten starten nicht bei 0, sondern bei 1.
Posted By: Yamm

Re: Nächten Node finden und Objekt anbinden - 11/13/14 13:49

Ok, dann habe ich path_setnode bisher missverstanden. Was gibt es sonst noch für Lösungen?

Das mit 1 und 0 habe ich zwar gelesen, konnte bei Tests aber bisher keinen Unterschied feststellen. Liegt wohl daran, dass ja schon der ganze Rest nicht funktioniert hat. wink
© 2024 lite-C Forums