GTA Steuerung wenn wird zu schnell?
Übersicht

![]() |
M0rgensternBetreff: GTA Steuerung wenn wird zu schnell? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute.
Nem Kumpel von mir ist folgendes aufgefallen: Wenn man bei meinem Spiel gleichzeitig grade aus und links bzw rechts fährt, dann wird der Spieler extrem schnell. Ich wüsste aber nicht wie ich es ändern könnte: Code: [AUSKLAPPEN] Spieler\PWinkel#=ATan2(-MouseX3D,-MouseY3D) ;Blickrichtung
;Geradeaus If KeyDown(17) Then Spieler\Px=Spieler\Px-Sin(Spieler\PWinkel)*Spieler\PGeschw# Spieler\Py=Spieler\Py-Cos(Spieler\PWinkel)*Spieler\PGeschw# EndIf ;Links If KeyDown(32) Then Spieler\Px=Spieler\Px-Sin(Spieler\PWinkel+90)*Spieler\PGeschw# Spieler\Py=Spieler\Py-Cos(Spieler\PWinkel+90)*Spieler\PGeschw# EndIf ;Rechts If KeyDown(30) Then Spieler\Px=Spieler\Px+Sin(Spieler\PWinkel+90)*Spieler\PGeschw# Spieler\Py=Spieler\Py+Cos(Spieler\PWinkel+90)*Spieler\PGeschw# EndIf ;Nach hinten If KeyDown(31) Then Spieler\Px=Spieler\Px+Sin(Spieler\PWinkel)*Spieler\PGeschw# Spieler\Py=Spieler\Py+Cos(Spieler\PWinkel)*Spieler\PGeschw# EndIf Kann mir vielleicht jemand helfen, also, dass der SPieler nicht schneller wird als sonst? Lg, M0rgenstern |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hätte es so gelöst:
(nicht getestet) Code: [AUSKLAPPEN] local winkel#, speed#, posx#, posy#
PosX=PosX-cos(winkel)*speed PosY=PosY+sin(winkel)*speed Aber ich weiß nicht ob es das bringt. Edit: Bei nach rechts bzw. links fahren natürlich "winkel#" entsprechend verändern. |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab den COde extra mitgeschickt.
Da stehts ja genauso drin^^ |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm... Das kommt dann wohl daher, dass du das Auto (or whatever) durch zwei dieser Dinger durchjagst, also hast du auch die doppelte Geschwindigkeit. Vermute ich mal, keine Garantie, dass es auch wirklich so ist. | ||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die bewegungs routine kann wegen der 4 if-endif mehrmals aufgerufen werden. Entweder du verwendert select-case oder if-elseif-endif. | ||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
???
Da sind kommentare bei. Außerdem sind es vier verschiedene Abfragen. Für jede Richtung eine. |
||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Edit. Doppelt abgesendet. | ||
![]() |
ThorstenBetreff: Re: GTA Steuerung wenn wird zu schnell? |
![]() Antworten mit Zitat ![]() |
---|---|---|
M0rgenstern hat Folgendes geschrieben: Wenn man bei meinem Spiel gleichzeitig grade aus und links bzw rechts fährt,
Genau, für jede Richtung eine, und da du in diesem Fall zwei mal die Geschwindigkeit zur X und Y Koordinate hinzuaddierst, wird er eben doppelt so schnell. Nur btw, du wendest Atan2 ![]() Aber du scheinst die Richtungen später wieder zu tauschen, deswegen macht sich das wohl nicht bemerkbar.. |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, warum das so ist, ist mir bewusst, aber wie kann ich das ändern? Ich hab mal ne Abfrage eingebaut wenn beides gedrückt wird und hab dann nur die hälfte der Geschwindigkeit zugefügt aber das funktionierte nicht.
Atan2 benutz ich schon richtig. ist Draw3D. Lg, M0rgenstern |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach es doch so, wie ich es oben geschrieben habe. | ||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
das erste das mir aufgefallen ist bei x benutzt man cos ![]() ![]() mehr kann ich gerade nicht finden muss auch weg Grüße TimBo So müsste das mit dem Speed gehen BlitzBasic: [AUSKLAPPEN]
|
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
- Zuletzt bearbeitet von TimBo am Mo, Okt 26, 2009 17:10, insgesamt 3-mal bearbeitet
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nachdem wohl niemand meinen vorschlag oben gelesen hat hier der vorgekaute fertige code für dich nicht denken woller:
Code: [AUSKLAPPEN] pieler\PWinkel#=ATan2(-MouseX3D,-MouseY3D) ;Blickrichtung
;Geradeaus If KeyDown(17) Then Spieler\Px=Spieler\Px-Sin(Spieler\PWinkel)*Spieler\PGeschw# Spieler\Py=Spieler\Py-Cos(Spieler\PWinkel)*Spieler\PGeschw# EndIf ;Links ElseIf KeyDown(32) Then Spieler\Px=Spieler\Px-Sin(Spieler\PWinkel+90)*Spieler\PGeschw# Spieler\Py=Spieler\Py-Cos(Spieler\PWinkel+90)*Spieler\PGeschw# ;Rechts ElseIf KeyDown(30) Then Spieler\Px=Spieler\Px+Sin(Spieler\PWinkel+90)*Spieler\PGeschw# Spieler\Py=Spieler\Py+Cos(Spieler\PWinkel+90)*Spieler\PGeschw# ;Nach hinten ElseIf KeyDown(31) Then Spieler\Px=Spieler\Px+Sin(Spieler\PWinkel)*Spieler\PGeschw# Spieler\Py=Spieler\Py+Cos(Spieler\PWinkel)*Spieler\PGeschw# EndIf |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
bei dir kann man aber nur auf einer Achse laufen, bei mir auf mehreren. ![]() Oder warum ist mein Code nicht so gut ? Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab deinen nicht gelesen, sry ist vom handy aus anstrengend.
hab den knackpunkt an meinem code nun auch verstanden. hab nichts an deinem code auszusetzen. im gegenteil(kommt in mein schnipselarchiv ![]() |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
M0rgenstern hat Folgendes geschrieben: Atan2 benutz ich schon richtig. ist Draw3D.
Ob das OpenGL, Draw3D oder Blitz2D ist, ist völlig Wurst. Du wendest Atan2 ![]() mfG, Thorsten |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
danke proller ![]() Thorsten hat natürlich recht ATan2(y,x) und nicht (x,y) habe ich auch mal falsch gemacht. ![]() Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da in der Draw3D die Y-Achse vertauscht ist und im Code auch Sinus bzw. Cosinus umgekehrt angewendet werden, wird es wohl am Ende wieder richtig rauskomment ![]() |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, was die WInkel angeht: Es funktioniert. Also weiß ich nicht, warum ihr darauf rumhacken müsst.
Ich bin jetzt zu müde um noch was auszuprobieren, aber TimBos Code scheint mir sehr logisch. Was da_poller mit dem Kommentar wollte: Zitat: nachdem wohl niemand meinen vorschlag oben gelesen hat hier der vorgekaute fertige code für dich nicht denken woller:
verstehe ich zwar nicht so ganz, weil er einfach nur meinen eigenen Code gepostet hat. Ich wüsste mal gerne wen er da ansprechen will..... Lg, M0rgenstern |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Sorry, dass ich der Ansicht war, dass das mit den Winkeln falsch war. Kenne es halt nur so Atan(y,x) cos=>x sin=>y aber da_Proller hat nicht deinen Code gepostet ... Er hatte den Vorschlage es so zu machen da_Proller BlitzBasic: [AUSKLAPPEN]
Dein Code war: BlitzBasic: [AUSKLAPPEN]
und das war mein Code BlitzBasic: [AUSKLAPPEN]
Greez TimBo |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, sorry, jetzt seh ich wo der Unterschied liegt.
Aber ich glaube nicht, dass es einen Unterschied machen würde. Das würde höchstens dafür sorgen, dass nicht mehr zwei Tasten gleichzeitig verarbeitet werden, d.h. man könnte sich nicht mehr diagonal bewegen. Lg, M0rgenstern Edit: Habs jetzt ausprobiert. VIelen Dank TimBo. Es klappt super. Lg, M0rgenstern |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group