Auto nicht im Stand drehen lassen?(Verbesserungsvorschläge)
Übersicht

RoggiBetreff: Auto nicht im Stand drehen lassen?(Verbesserungsvorschläge) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also wie schon im Wip steht programmieren wir gerade ein 3D Rennspiel, wo man zwar nur in einer 3D Stadt rumfährt, aber immerhin. So und nun zu meinen Problem:
Unser Spiel basiert auf die Driver Demo. Aber da kann man das Auto auch im Stand drehen. Also man muss nicht gas geben, dafür dass es sich dreht. Sowas gibt es aber auch nicht in Wirklichkeit und deshalb wollte ich wissen wie man es einbauen könnte das man nur Kurven fahren kann oder drehen wenn man Gas gibt. Verstanden? ![]() ![]() MfG Tom :edit: Ich war blöd ich hab einfach bei turnentity ein and keydown dazu gesetzt und es geht jetzt. Vielleicht hat ja jemand noch Ideen fürs Spiel und Tipps zum verbessern der Driver Fahrphysik. Oder wie bekomme ich eine Trägheit hin das man in den Kruven langsamer wird. Ich habs schon so wie oben probiert aber wenn man das immer weiter drückt fährt das Auto irgendwann rückwärts! DAnke :edit/: |
||
- Zuletzt bearbeitet von Roggi am So, Feb 05, 2006 9:22, insgesamt einmal bearbeitet
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du die Drehgeschwindigkeit mit der Fahrzeuggeschwindigkeit multiplizierst, dann hast du den erwünschten Effekt, daß sich das Fahrzeug nicht stehen drehen kann. Ausserdem beachtest du dann bei einer Rückwärtzfahrt den Lenkeinschlag, daß sich das Fahrzeug dann auf der gleichen Linie zurrück bewegt. Die Drosselung bei einer Geschwindigkeit kannst du aus einer berechneten Fliehkraft berechnen. Dabei auch hier die Geschwindigkeit dividieren und nicht Addieren/Subtraieren... Hier mal ein Beispiel:Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer BackBuffer() xp#=200;X-Position yp#=200;Y-Position xg#=0;X-Geschwindigkeit yg#=0;Y-Geschwindigkeit fg#=0;Fahrzeug-Geschwindigkeit rp#=0;Rotations-Position fk#=0;Berechnete Fliehkraft xpa#=0;Alte X-Position ypa#=0;Alte Y-Position ;Hauptschleife While Not KeyHit(1) ;Vorrausschauend sichern xpa=xp+Cos(rp)*fg ypa=yp+Sin(rp)*fg ;Tastaurabfrage If KeyDown(200) fg=fg+.05 If KeyDown(208) fg=fg-.02 If KeyDown(203) rp=rp-fg/1.4 If KeyDown(205) rp=rp+fg/1.4 ;Reibungswiederstand fg=fg/1.01 ;X/Y-Geschwindigkeit xg=Cos(rp)*fg yg=Sin(rp)*fg ;Neu Positionieren xp=xp+xg yp=yp+yg ;Fliehkraft fk=Sqr((xp-xpa)^2+(yp-ypa)^2) ;Fliehkraft bearbeiten If fk > .06 Rect 0,0,60,60,1;Hier Quitschsound!!! xp=xp-xg yp=yp-yg xp=xpa yp=ypa End If ;Werteinformationen Line 400,100,400+fg*50,100 Line 400,104,400+fk*800,104 ;Fahrzeug zeichnen Line xp+Cos(rp-30)*10,yp+Sin(rp-30)*10,xp+Cos(rp+30)*10,yp+Sin(rp+30)*10 Line xp+Cos(rp+30)*10,yp+Sin(rp+30)*10,xp+Cos(rp+150)*10,yp+Sin(rp+150)*10 Line xp+Cos(rp+150)*10,yp+Sin(rp+150)*10,xp+Cos(rp-150)*10,yp+Sin(rp-150)*10 Line xp+Cos(rp-150)*10,yp+Sin(rp-150)*10,xp+Cos(rp-30)*10,yp+Sin(rp-30)*10 Flip Cls Wend End |
||
Roggi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo Danke für den Tipp aber mein Game ist 3D und da musst ich bloß alles auf 3 Achsen umlegen ![]() Wer hat nun noch Tipps zur Fahrphysik oder noch andere Tipps zum Game ob man vlt. Aufträge erledigen soll, wenn ja welche und wie ihr die umsetzen wollt. Oder vlt. hat noch jemand einen Vorschlag um die Fahrphysik noch realistischer zu machen. Aber Danke schonmal ich hoffe auf ein gutes Feedback ![]() MfG Tom ![]() :edit: Ich hab das mit der Steuerung jetzt so gelöst: Man hat jetzt Handbremse aber man kann wenn man Handbremse drückt nicht lenken und wenn er ausläuft(ohne Gas) bleibt er sofort stehen und lässt sich auch net lenken: Code: [AUSKLAPPEN] If KeyDown(203) And KeyDown(200) TurnEntity car,0,1,0
If KeyDown(205) And KeyDown(200) TurnEntity car,0,-1,0 If KeyDown(203) And KeyDown(208) TurnEntity car,0,-1,0 If KeyDown(205) And KeyDown(208) TurnEntity car,0,1,0 If EntityCollided( car,SCENE ) If KeyDown(200) speed=speed+.006 If speed>.7 speed=.8 Else If KeyDown(208) speed=speed-.011 Else If KeyDown(57) speed=speed-.02 If speed<+.000 speed= +.000 If speed<-.5 speed=-.5 Else speed=speed*.9 EndIf MoveEntity car,0,0,speed So das wars :edit/: |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo 0ahnung, folgendes ist schon mal keine 'Fahrphysik'...Code: [AUSKLAPPEN] If KeyDown(203) And KeyDown(200) TurnEntity car,0,1,0
If KeyDown(205) And KeyDown(200) TurnEntity car,0,-1,0 If KeyDown(203) And KeyDown(208) TurnEntity car,0,-1,0 If KeyDown(205) And KeyDown(208) TurnEntity car,0,1,0 Was machst du, wenn der User lenkt und dabei mal nicht mit Gas gibt? Ausserdem ist ein Auto ja kein Flugzeug. Auch in einem 3D-Autorennen fährt ein Fahrzeug auf einer Straße die 2D ist. Somit kann man 2D-Routinen genauso gut in 3D verwenden... Was da noch hinzu kommen kann, ist der Grip auf dem Boden wenn man über Hügel etc. fährt... Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,0,-400 CameraClsColor camera,56,56,80 light=CreateLight() RotateEntity light,60,0,0 cube=CreateCube() ScaleEntity cube,10,20,10 EntityAlpha cube,.5 fg#=0 rg#=0 While Not KeyHit(1) If KeyDown(203) rg=rg+.1 If KeyDown(205) rg=rg-.1 If KeyDown(200) fg=fg+.1 If KeyDown(208) fg=fg-.05 rg=rg/1.04 fg=fg/1.02 MoveEntity cube,0,fg,0 TurnEntity cube,0,0,rg*fg/2 RenderWorld Flip Cls Wend End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group