Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 03.10.03 17:23 
Hallo,
ich möchte das der user nur geradeaus laufen kann und mit der maus soll er dies ändern.sobalt er mit der maus den blickwinkel ändern soll er automatisch dahin laufen aber ich möchte nur gerade aus oder zurück laufen können, wie bekomme ich das mit GLScene hin ????

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 04.10.03 22:31 
naja vileicht habe ich meine frage falsch gestellt.

bei bekannten spielen(ego shootern) muss man doch nur zwei tasten drücken(eine für vorwärts und eine für rückwärts) und mit der maus kann man dann den blickwinkel ändern(das habe ich hinbekommen) dann läuft der objekt in die richtung in der ich schaue und genau das will ich auch hinbekommen. hat da jemmand eine idee ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Sa 04.10.03 23:16 
ausblenden Quelltext
1:
2:
3:
4:
Spieler.position.X:=Spieler.position.X-sin(yrot*pi/180)/FrameTime * geschwindigkeitsfaktor;


Spieler.position.Z:=Spieler.position.Z+cos(yrot*pi/180)/FrameTime*geschwindigkeitsfaktor;

wie man das allerdings in GLScene einbaut weiß ich nicht...
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 05.10.03 11:07 
ich werde es mal so testen wie es da steht und nur einige sachen ändern *G*. mal sehen ob es funktioniert.

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 05.10.03 11:42 
was ist "yrot" ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: So 05.10.03 12:03 
der Rotationswinkel um die Y-Achse...
wenn du bei 0 z.B. vorne hast, dann ist 90° rechts 180° die andere Richtung (hinten) usw...
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 05.10.03 12:11 
die frage ist jetzt, wie setzt ich das um. muss ich jetzt für alle richtungen einfach den wert yrot ändern ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: So 05.10.03 12:20 
also...
du hast irgendwo doch den yrot-Wert gespeichert, denn wenn du die MAus zur Seite bewegst, dann dreht sich doch die Welt um dich (bzw. du drehst dich in der Welt :mrgreen:)...
damit sich aber flüssig gedreht wird und nicht jedes mal wenn du die Maus bewegst die Richtung wieder von "geradeaus" aunfängt muss irgendwo dieser WErt schon gespeichert sein und er verändert sich, wenn du die Blickrichtung änderst (eigentlich umgekehrt, aber das tut ja nichts zur Sache ;))

wenn nun die "vorwärts"-taste gedrückt wird setzt du als Bsp. eine Boolean-Variable auf true und wenn diese Taste wieder losgelassen wird setzt du die Variable wieder augf False...

nun überprüfst du in jedem Frame, ob die taste gedrückt ist (anhand der Variable) und wenn ja, dann musst du die Position, in der du dich befindest, in der Welt ändern (die Werte, die bei gltranslate angegeben werden..)
und die neuen Werte dafür rechnest du anhand der oben schon geposteten Formel aus...
Wenns unklar ist :D dann sag das ;)
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 05.10.03 12:58 
das mit der mausbeweung mache ich so:

ausblenden Delphi-Quelltext
1:
2:
GLCamera1.MoveAroundTarget(MousePos.Y - Y, MousePos.X - X);
MousePos.x:=x; MousePos.Y:=y;

_________________
MFG
Michael Springwald, "kann kein englisch...."