Beschleunigung & Abbremsen
Übersicht

mDave |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Speed muss eine Float sein und die Punkte bei KeyDown müssen ersetzt werden. | ||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
oder du setzt irgendwo ein end, das verursacht bei unsachgemäßer benutzung auch fehlfunktionen | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja also das auto fährt schon nach hinten aber eben wie eine schnecke ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm... Das ist aber seltsam.
Schicke mal den Code, in dem der Fehler stecken sollte. Aber bei meinem Code wird die Brems-Ergänzungen nur ohne gedrückte Taste ausgeführt... |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist der komplette code:
Code: [AUSKLAPPEN] Graphics3D 640,480,16,1
Global timer=CreateTimer(60) SetBuffer BackBuffer() player=LoadMesh("Meshes\Indycar3.3ds") PositionEntity player,400,40,300 EntityType player,2 RotateMesh player,180,0,180 camera=CreateCamera(player) PositionEntity camera,0,4,-10 l5=CreateLight(2) PositionEntity l5,250,230,300 RotateEntity l5,90,0,0 EntityParent l5,m st=LoadTexture("Texturen\wolken.jpg") ScaleTexture st,0.1,0.1 skybox=CreateSphere () FlipMesh skybox EntityType skybox,1 EntityTexture skybox,st ScaleEntity skybox ,500,550,500 EntityOrder skybox,1 PositionEntity skybox,200,0,200 EntityFX skybox,1 u=CreatePlane() PositionEntity u,0,0,0 EntityAlpha u,0.0 EntityType u,1 terrain=LoadMesh("Meshes\Rennstrecke.b3d") PositionMesh terrain,250,40,300 EntityType terrain,1 EntityFX terrain,1 Collisions 2,1,2,2 Boost#=5 While Not KeyDown(1) If KeyDown( 200 )=True Then speed#=speed#+0.002 EndIf If KeyDown(208) speed# = speed# - 0.035 EndIf MoveEntity player,0,0,speed# If speed# > 2 speed# = 2 If speed# < -0.5 speed# = -0.5 If KeyDown(200) If speed# < 0 speed# = speed# + 0.01 Else If speed# > 0 Then speed# = speed# - 0.004 Else speed# = 0 If speed# > 0 speed# = speed# - 0.004 EndIf If KeyDown(200)=True And KeyDown(57)=True And boost# > 0 And speed# < 2 Then speed#=speed#+0.05 boost#=boost#-0.25 End If If speed#=2 And boost# < 10 Then boost#=boost#+0.01 If boost# < 0 Then boost# = 0 If boost# > 10 Then boost# = 10 If KeyDown( 205 )=True Then TurnEntity player,0,-1.5,0 If KeyDown( 203 )=True Then TurnEntity player,0,1.5,0 RotateMesh skybox,0,-0.02,0 TranslateEntity player,0,-0.3,0 RenderWorld UpdateWorld Text 10,10, "Speed: "+speed# Text 10,25, "Boost: "+boost# Flip Wend End Und das ist der Teil mit dem Beschleunigen und so : Code: [AUSKLAPPEN] Boost#=5
While Not KeyDown(1) If KeyDown( 200 )=True Then speed#=speed#+0.002 EndIf If KeyDown(208) speed# = speed# - 0.035 EndIf MoveEntity player,0,0,speed# If speed# > 2 speed# = 2 If speed# < -0.5 speed# = -0.5 If KeyDown(200) If speed# < 0 speed# = speed# + 0.01 Else If speed# > 0 Then speed# = speed# - 0.004 Else speed# = 0 If speed# > 0 speed# = speed# - 0.004 EndIf If KeyDown(200)=True And KeyDown(57)=True And boost# > 0 And speed# < 2 Then speed#=speed#+0.05 boost#=boost#-0.25 End If If speed#=2 And boost# < 10 Then boost#=boost#+0.01 If boost# < 0 Then boost# = 0 If boost# > 10 Then boost# = 10 |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du mehrfach Keydown(200) abfragst, kannst du nicht entscheiden welcher Codeblock arbeitet wie er soll...
Hast du es schon mal mit simpler Reibung versucht? Code: [AUSKLAPPEN] If KeyDown(200) Then
speed# = speed# + 0.01 Else speed# = speed# * 0.99 ;<--- nach belieben anpassen If speed# < 0.01 Then speed# = 0 EndIf |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein das hab ich noch nicht versucht | ||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
Meik |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab das damals in der BMax Demo so gelöst
Code: [AUSKLAPPEN] If KeyDown( KEY_UP )
If p.speed < 3 p.speed :+ p.accel Else p.speed = 3 EndIf Else If p.speed > 0 p.speed :- p.force If p.speed < 0 Then p.speed = 0 EndIf End If If KeyDown( KEY_DOWN ) If p.speed > -1 p.speed :- p.break Else p.speed = -1 EndIf Else If p.speed < 0 p.speed :+ p.force If p.speed > 0 Then p.speed = 0 EndIf End If müsste in Blitz3D ungefähr so aussehen: ( nicht getestet ) Code: [AUSKLAPPEN] If KeyDown( 200 )
If speed# < 3 speed# = speed# + accelerate# ;accelerate = Beschleunigung Else speed# = 3 EndIf Else If speed# > 0 speed# = speed# - force# ;force = Kraft die auf den Wagen einwirkt zum automatischem abbremsen If speed# < 0 Then speed# = 0 EndIf End If If KeyDown( 208 ) If speed# > -1 speed# = speed# - break# ;break = Bremskraft Else speed# = -1 EndIf Else If speed# < 0 speed# = speed# + force# If speed# > 0 Then speed# = 0 EndIf End If Ist vielleicht nicht das Optimale an Code weil ich mein Code so aufbaue das er hauptsächlich funtioniert und nicht unbedingt schnell ist ^^ Vielleicht kannst du ja damit anfangen ![]() Edit: Ich sollte vielleicht noch dazuschreiben was ich für Werte hatte damit man sich was drunter vorstellen kann: speed# = 0 break# = 0.05 accelerate# = 0.02 force# = 0.02 Wenn eine erklärung gewünscht bitte sagen weil ich denke das stückchen Code ist selbsterklärend oder? ![]() |
||
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja das spricht für sich ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
und ist exakt das gleiche was schon vorher alle leute gepostet haben ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja......
und wie kann ich das einbauen das dass auto langsamer fährt wenn es bergauf geht und schneller wenn es bergab geht? ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://de.wikipedia.org/wiki/Hangabtriebskraft
die hangabtriebskraft ergibt sich aus dem winkel in dem gefahren wird und der gravitation und wirkt bremsend/beschleunigend auf dein auto übertragen auf dein spiel könntest du etwas ala geschwindigkeit=geschwindigkeit+sin(winkel)*intensivität machen |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
axo ok dankeeee | ||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group