X_Rotation drehungsroutine-Problem

Previous topic - Next topic

x-tra

Ich stehe vor einem großen Problem.

Nehmen wir an ein Objekt wird im Raum mittels der Cursortasten gesteuert, soll sich aber wenn es nach links und rechts steuert auch in diese Richtung drehen.

Ich war soweit, dass es sich bei der jeweiligen Seite dreht, aber nicht mehr zurückgeht.

Und das nächste problem besteht darin, dass wenn ich nach links einlenke und plötzlich nach rechts, es sofort nach ganz rechts ausschlägt.

Ich hab den ganzen Teil im Quellcode gelöscht, war nur noch durcheinander.

Wie bastel ich am besten so eine Routine, dass wenn man nach links lenkt es auch schön weich nach links dreht, wenn man die Taste loslässt es wieder zurückdreht, und wenn ich während der linksbewegung nach rechts will, es auch erst zurückkehrt und dann nach rechts dreht.

Das gleiche respektive für die rechte seite.

Boah jetzt bin ich selber verwirrt, und vielleicht gibt mir jemand nen Tip.

Schranz0r

Grober Code.... ;)

If Taste_links then inc PhiXZ, 0.25
If Taste_rechts then dec PhiXZ, 0.25

If Taste_links =  0 and Taste_rechts = 0
   If PhiXZ < 0 then inc PhiXZ, 0.25
   If PhiXZ > 0 then dec PhiXZ, 0.25
Endif

bla bla bla x+Cos(PhiXZ), y, z+Sin(PhiXZ)


würde ich jetzt Spontan sagen ..... ohne es getestet zu haben :rolleyes:
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

x-tra

okay da bastel ich mal dranrum.

hab an der steuerung erstmal überhaupt zu knabbern.

hatte ja nun links, rechts, vor, zurück gemacht, aber damit kann man sich ja nicht frei bewegen.

So habe ich ein objekt ausserhalb des levels gemacht, welches ich rotieren lasse bei links und rechts bewegung.somit ist obiges problem gelöst, weil sich das hauptobjekt in abhängigkeit dazu mitdreht.

Nun muss bei einer vorwärts bzw. rückwärst bewegung das hauptobjekt zu dem aussenstehenden objekt hinbewegen.  und so mit for koordinateshipz=koordinateshipz to koordinateobjektz   das funzt net so wirklich.

muss mir da nochwas einfallen lassen.

kann es zwar dorthin positionieren, aber es soll sich ja hinbewegen

Schranz0r

also kommt drauf an wie:

evtl wieder Sin Cos
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

x-tra

na ich hab nen level ganz simple, und dort drin ein raumschiff(alles so zum testen).

und ich wills halt ganz einfach steuern können.

vor zurück drehen um die kurve fliegen usw.

dazu hab ich ja sozusagen ein pivot gemacht, sozusagen.

dir drehung klappt wunderbar, nur eben weiß ich nicht, wie ich mich in realtime auf das pivot zubewegen kann.

irgendeine theorie?

Quellcode werd ich posten wenns so einigermaßen funktioniert mit der steuerung, ist aber das erste projekt von mir, da will ich erstmal soviel basteln wie möglich.

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

x-tra

eigentlich wollte ich nur eine simple Steuerung für ein raumschiff im dreidimensionalen Raum.

Relativ zur eigenen Position.

Sozusagen Ego shooter perspektive.

Kitty Hello

ok. Dein Spieler hat position, px,py,pz
und: drehwinkel um Y-Achse (phi)
wenn Du vor drückst, bewegt sich der Spieler so:
dx=cos(phi)*speed
dz=sin(phi)*speed
dann zur Position dazu:
inc px, dx
inc pz, dz
den "phi" drehst Du mit:
inc phi, key(rechts)-key(links)

wenn Du link-rechts laufen willst (strive), dann sin/cos vertauschen. Müsst ich mal nachdenken ;)

x-tra

danke probier ich dann gleich aus.
speed ist dann irgendeine zahl, oder?
oder ne seperate routine?



und da ich um winkelfunktionen wohl längerfristig nicht drumherum komme, kann mir jemand paar links geben oder so, wo ich das alles lernen kann mit cosinus sinus usw.

was diese sachen sind weiß ich, aber deren anwendung ist mit total schleierhaft.

man merkt schon, dass ich mehr als 10 jahre aus der schule raus bin.
tja shit happens