Parent Funktion

Posted By: Bemmi83

Parent Funktion - 07/28/14 15:39

Hallo erstmal,
ich war lange nicht hier und möchte gleich mal wieder eine Frage loswerden. eek Ich hab schon im Manuel geschaut und bin nicht fündig geworden.

Mal angenommen ich habe 2 Würfel, w1 und w2.
w1 kann ich bewegen.
Nun möchte ich das w2 ein Kindobjekt von w1 ist und der Bewegung folgt.

Danke im voraus

MfG Felix
Posted By: Kartoffel

Re: Parent Funktion - 07/28/14 16:03

kannst du das ganze etwas genauer beschreiben, also wie sich das ganze verhalten soll?
und soll das für unendlich viele objekte funktionieren, oder gibts da eine vorgegebene anzahl?
Posted By: Bemmi83

Re: Parent Funktion - 07/28/14 16:10

Hi,
nein das soll nur zum üben für 2 Objekte funktionieren.

Beschreibung
Ich bewege den einen Würfel(frei im Raum) von links nach rechts mit den Cursor-Tasten.
Wenn ich sagen wir auf Taste "p" drücke. Soll der w2 Child sein und der Transformation folgen.

Er soll quasi zum Unterobjekt werden und der Bewegung folgen.
Posted By: Kartoffel

Re: Parent Funktion - 07/28/14 16:19

Aalso so wie ich das verstehe, soll der 2. würfel bei einem bestimmten zeitpunkt genau den gleichen bewegungsablauf machen.

Dafür müsstest du die positionen beim ersten durchlauf speichern und auf den 2. würfel anwenden.

Ich würde das so machen: eine liste (-> array) aus vektoren machen, und z.b. alle 0.2 sekunden die derzeitige position in dem array speichern.

Wenn das ganze auf w2 angewendet werden soll würde ich die positionen in der liste wieder abrufen (mit vec_lerp, zum interpolieren)

Das ganze könnte aber etwas schwer sein (weiß nich wieviel knowledge du hast), weil du einen array mit einer festen größe definierst und du mit dem ansatz auch nur eine bestimmte anzahl an positionen speichern kannst (-> die länge des weges ist begrenzt).
Posted By: Bemmi83

Re: Parent Funktion - 07/28/14 16:38

Ahh...,

da gibt es doch bestimmt eine einfache Lösung.

Ich sag mal so. Ich hab in letzter Zeit mit Unity3D gearbeitet und möchte mich aber wieder mehr Gamestudio widmen.

Da gab es diese Funktion:

w2.parent = w1;

Nach den setzen der Anweisung ist w2 Child von w1 und folgt der Bewegung von w1.
Posted By: ventilator

Re: Parent Funktion - 07/28/14 17:07

gamestudio hat keinen hierarchischen scene graph, also musst du das von hand machen. kompliziert ist es nicht. wenn es auch mit drehungen klappen soll, musst du halt ein bisschen mit den vec_ funktionen herumrechnen, damit das kind korrekt dem elternelement folgt. laugh
Posted By: Superku

Re: Parent Funktion - 07/28/14 17:22

Also es gibt auch in lite-C einen parent-Pointer, welchen du per Skript oder per WED ("Attached") setzen kannst, was ich auch oft in meinem Spiel mache.

Als Initialisierung kannst du folgendes machen:
vec_diff(my.skill60,my.x,my.parent.x); //oder andere Skills oder einen VECTOR
dann in einer Loop:

( proc_mode = PROC_LATE; )
...
vec_set(my.x,my.parent.x);
vec_add(my.x,my.skill60);

Wenn du Rotationen brauchst, musst du dann noch den Startwinkel von parent (bzw. beider Objekte) abspeichern und mit ang_rotate oder -add relativ zu parent.pan hinzufügen.
Posted By: Bemmi83

Re: Parent Funktion - 07/28/14 19:17

Hi,
danke erstmal für eure Infos.
Da werde ich das mal wie Superku beschrieben hat ausprobieren.

Hauptsache ich kann erstmal herausbekommen dass das Teil ein Child-Entity ist.
© 2024 lite-C Forums