0 registered members (),
1,459
guests, and 9
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
crazy Dragon physics....
#372684
06/03/11 15:54
06/03/11 15:54
|
Joined: Mar 2011
Posts: 69 Munich (Germany)
LPF
OP
Junior Member
|
OP
Junior Member
Joined: Mar 2011
Posts: 69
Munich (Germany)
|
Ich habe im Med einen kleinen drachen creiert und habe vesucht ihn auf die folgende weise zu steuern: wenn man leertaste drückt schlägt der Drache mit den flügeln und man steigt nach oben mit den pfeiltasten kann man den drachen drehen und den vortrieb duch neigung der flügel bestimmen... ich hab's also mit der physics-engine probiert und folgendes erhalten
ph_setgravity (vector(0, 0, -383)); // set the gravity
phent_settype (dragon, PH_RIGID, PH_BOX); // set the physics entity type
phent_setmass (dragon, 1, PH_BOX); // and its mass
phent_setfriction (dragon, 100); // set the friction
phent_setdamping (dragon, 40, 40); // set the damping
phent_setelasticity (dragon, 1, 1); // set the elasticity
while (1)
{
rotatedragon_force.x = -100 * time_step * (key_cur - key_cul); // move the ball using the cursor keys
rotatedragon_force.y = -100 * time_step * (key_cuu - key_cud); // 25 sets the x / y movement speeds
rotatedragon_force.z = 0;
dragon_force.x = 0;
dragon_force.y = 0;
dragon_force.z = 3000 * time_step * (key_space); // no need to move on the vertical axis
phent_addcentralforce(dragon, dragon_force);
phent_addtorqueglobal (dragon, rotatedragon_force); // add a torquxe (an angular force) to the ball
wait (1);
}
(dragon ist das modell) das problem an der ganzen sache ist das sich die physik unabhängig von der Modellausrichtun angreift, und sich der drache wirklich immer nur hoch und runter bewegt. kann man das so ändern dass die physik wie c_move immer in ausrichtungsrichtung des modells angreift???? oder wäre es möglich c_move und die physik zu kombinieren? thx im vorraus LPF
..oooO ......... ..(....)..Oooo.. ...\..(...(....).. ....\_)....)../.. ...........(_/... ...ICH WAR.... ........HIER....
|
|
|
Re: crazy Dragon physics....
[Re: TheShooter]
#372697
06/03/11 17:08
06/03/11 17:08
|
Joined: Dec 2008
Posts: 605 47°19'02.40" N 8°32'54.67" E...
hopfel
User
|
User
Joined: Dec 2008
Posts: 605
47°19'02.40" N 8°32'54.67" E...
|
Ich würde dir an dieser Stelle eh raten, nicht auf die Physik-engine zurückzugreifen, sondern dir selber "Schwerkraft" zu programmieren. Im Physikunterricht solltest du gelernt haben/wirst du lernen was du dafür für Formeln benutzt und wie du sie anwendest. Das ganze für deinen Fall etwas zusammengefasst: s = s0 + 1/2 * at² + v0 * t s ist die zurückgelegte Strecke, a die Beschleunigung (-9.81 für Erdanziehung), v0 die Geschwindigkeit gen oben die der Drache durch den Flügelschlag bekommt, s0 seine anfangshöhe und t für die Zeit. (Hoffe ich hatte das noch richtig im Kopf) Für eine einigermassen naturgetreuen Fallbeschleunigung würde das im Code etwa so aussehen:
var t = 0; //Zeit die verstreicht
var v = 10; //Anfangsgeschwindigkeit (Die durch einen Flügelschlag erreicht wurde)
var anfangshoehe = dragon.z; //Höhe vor Fall
while(1)
{
dragon.z = anfangshoehe + 1/2 * -9.81 * (t*t) + v*t;
t += time_frame;
wait(1);
}
Bei jedem Flügelschlag t auf 0 und die Anfangshöhe auf den Drachen setzen und du hast deine Schwerkraft. Das Viech hat natürlich auch eine Luftreibung, aber das Ganze wird sonst noch ein wenig kompliziert, verringere am besten einfach die Fallbeschleunigung, also a in der oberen Formel. Und so kannst du auch ohne weiteres mit c_move arbeiten. Hoffe, das hat dir weitergeholfen. ^^
Hilf mir, dir zu helfen!
|
|
|
Re: crazy Dragon physics....
[Re: hopfel]
#372702
06/03/11 18:03
06/03/11 18:03
|
Joined: Mar 2011
Posts: 69 Munich (Germany)
LPF
OP
Junior Member
|
OP
Junior Member
Joined: Mar 2011
Posts: 69
Munich (Germany)
|
O.K. Thanks... aber das hatte ich schon probiert... damit das echt mirkt fehlen aber jede menge formeln die auch auf den Abtauchwinkel usw. zugreifen müssen... und das wäre ziemlich... na ja, Aufwendig d-.-b (-> wenn sich der winkel vergrössert muss die beschleunigung nach vorne dazuaddiert, und aus dem abtauchwinkel ein neuer auftrieb errechnet werden... ausserdem sind physikalische formeln überflüssig wenn man einfach pro ablaufzyklus etwas von einer ständig herrschenden beschleunigung abzieht, mit der man dann auch auftrieb erzeugen kann theoretisch machbar, praktisch aber fast unausführbar...)
und Ja... ich habs schon in der schule gelernt... man berechnet amit aus einem parabelförmigen graphen im t-v diagramm den zurrückgelegten weg... Grins
-> TheShooter: ich bin eigentlich Neuling mit lite-c... und habe mir gedacht, dass es mit der physics-Engine nett aussähe (würde, von dem was ich gelesen habe ,auch viele weitere probleme lösen...)
PS: ist übrigens fast alles copy&paste aus dem Lite-c-Workshop...
Last edited by LPF; 06/03/11 18:05.
..oooO ......... ..(....)..Oooo.. ...\..(...(....).. ....\_)....)../.. ...........(_/... ...ICH WAR.... ........HIER....
|
|
|
Re: crazy Dragon physics....
[Re: Pappenheimer]
#372722
06/03/11 20:15
06/03/11 20:15
|
Joined: Mar 2011
Posts: 69 Munich (Germany)
LPF
OP
Junior Member
|
OP
Junior Member
Joined: Mar 2011
Posts: 69
Munich (Germany)
|
ich hab gar kein x & y... aber wenn du eine formel aufstellst,die je nach winkel x,bzw. y berechnen wäre das eine große hilfe...
als ansatz vielleicht: so und so viele prozent von 45° (abtauchwinkel) entsprechen so und so viel prozent vo y bzw. x -> Problem: er fliegt immer richtung x,also müsste man über trigonometrie y berechnen und so weiter... (grins)
Ps: ich hab's so probiert, und die engine hat verrückt gespielt... na ja
..oooO ......... ..(....)..Oooo.. ...\..(...(....).. ....\_)....)../.. ...........(_/... ...ICH WAR.... ........HIER....
|
|
|
Re: crazy Dragon physics....
[Re: LPF]
#372723
06/03/11 20:21
06/03/11 20:21
|
Joined: Sep 2003
Posts: 5,900 Bielefeld, Germany
Pappenheimer
Senior Expert
|
Senior Expert
Joined: Sep 2003
Posts: 5,900
Bielefeld, Germany
|
Für x:
VECTOR temp; var force_x_n_y = 300;
vec_for_angle(temp, my.pan); vec_scale(temp, force_x_n_y);
Last edited by Pappenheimer; 06/03/11 20:22.
|
|
|
Re: crazy Dragon physics....
[Re: Pappenheimer]
#372726
06/03/11 20:34
06/03/11 20:34
|
Joined: Mar 2011
Posts: 69 Munich (Germany)
LPF
OP
Junior Member
|
OP
Junior Member
Joined: Mar 2011
Posts: 69
Munich (Germany)
|
was genau macht man da jetzt...?
ich denke man setzt einen richtungsvektor(temp) auf my.pan und verändert diesen dann mit x... oder so
..oooO ......... ..(....)..Oooo.. ...\..(...(....).. ....\_)....)../.. ...........(_/... ...ICH WAR.... ........HIER....
|
|
|
Re: crazy Dragon physics....
[Re: LPF]
#372736
06/03/11 21:36
06/03/11 21:36
|
Joined: Nov 2007
Posts: 2,568 Germany, BW, Stuttgart
MasterQ32
Expert
|
Expert
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
|
@Pappenheimer: schlechtes beispiel, der code ist unsicher! Deine Kraft verändert sich auch im Betrag, für die Funktion braucht man vec_normalize!
VECTOR temp;
var force_x = 300;
vec_for_angle(temp, my.pan);
vec_normalize(temp, force_x);
rotiert die kraft force_x in x-y-z richtung so, dass der drache immer nach vorne fliegt.
|
|
|
Re: crazy Dragon physics....
[Re: MasterQ32]
#372766
06/04/11 07:33
06/04/11 07:33
|
Joined: Mar 2011
Posts: 69 Munich (Germany)
LPF
OP
Junior Member
|
OP
Junior Member
Joined: Mar 2011
Posts: 69
Munich (Germany)
|
werd's mal ausprobieren... thx
-> mehr oder weniger unabhängige frage: wie bekomme ich das massezentrum einer Physics Entity?
ach ja: Lokale Rotation hab ich gesern abend noch hinbekommen d-.-b deshalb auch: wenn ich bei phent_addforcelocal den angriffspositionsvektor(oder so) ins massezentrum setze müsste er mir das gewünschte ergebnis liefern...
Last edited by LPF; 06/04/11 07:39.
..oooO ......... ..(....)..Oooo.. ...\..(...(....).. ....\_)....)../.. ...........(_/... ...ICH WAR.... ........HIER....
|
|
|
|