Beschleunigung & Abbremsen
Übersicht

![]() |
noobyblasterBetreff: Beschleunigung & Abbremsen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin Moin alle zusammen ![]() Ich hab jetzt mal ein bischen an einem kleinen Rennspiel gebastelt. nun frag ich mich wie ich die Beschleunigung und das abbremsen hinbekomme. SuFu hab ich schon benutzt aber ich habs einfach nicht auf meinen code übertragen können. ![]() Code: [AUSKLAPPEN] ;Include "logo.bb"
ClearWorld Global timer=CreateTimer(60) SetBuffer BackBuffer() player=LoadMesh("Meshes\Indycar3.3ds") PositionEntity player,400,60,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,3 While Not KeyDown(1) If KeyDown( 205 )=True Then TurnEntity player,0,-1,0 If KeyDown( 203 )=True Then TurnEntity player,0,1,0 If KeyDown( 208 )=True Then MoveEntity player,0,0,-0.1 If KeyDown( 200 )=True Then MoveEntity player,0,0,0.9 RotateMesh skybox,0,-0.02,0 TranslateEntity player,0,-0.3,0 RenderWorld UpdateWorld Flip Wend End kann mir das mal einer reinbasteln ich bekomms nicht hinn ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was du brauchst ist eine speed variable. DIe zählst du immerhoch wenn du beschleunigst und ziehst immer etwas von ihr ab wenn du bremst. Dann brauchst du nur noch MoveEntity auto,0,0,speed# zu schreiben und das wars ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja das hab ich auch schon versucht
aber dann ist das auto garnicht gefahren ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie genau hast du es versucht? | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh irgendwie hab ich da was übersehen jetzt gehts,
aber das mit dem abbremsen raff ich nicht ![]() Und Maximal geschwindigkeit wie mach ich das? also das z.b. bei speed#=0.1 schluss ist . Code: [AUSKLAPPEN] Include "logo.bb"
ClearWorld Global timer=CreateTimer(60) SetBuffer BackBuffer() player=LoadMesh("Meshes\Indycar3.3ds") PositionEntity player,400,60,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,3 While Not KeyDown(1) If Not KeyDown( 200 )=True Then speed#=0.2 If KeyDown( 200 )=True Then speed#=speed#+0.01 MoveEntity player,0,0,speed# EndIf If KeyDown( 205 )=True Then TurnEntity player,0,-1,0 If KeyDown( 203 )=True Then TurnEntity player,0,1,0 If KeyDown( 208 )=True Then MoveEntity player,0,0,-0.1 RotateMesh skybox,0,-0.02,0 TranslateEntity player,0,-0.3,0 RenderWorld UpdateWorld Text 10,10, speed# Flip Wend End |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Edit: Übersehen das es nu geht Bitte löschen | ||
WIP: Vorx.Engine |
- Zuletzt bearbeitet von ComNik am So, Aug 30, 2009 12:12, insgesamt einmal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hier:
Code: [AUSKLAPPEN] If KeyDown( 200 )=True Then
speed#=speed#+0.01 MoveEntity player,0,0,speed# EndIf sollte eher so sein: Code: [AUSKLAPPEN] If KeyDown( 200 )=True Then
speed#=speed#+0.01 EndIf If Keydown(208) speed# = speed - 0.01 Endif MoveEntity player,0,0,speed# So geht dann auch das lansamer werden. Und für die maximal-Geschwindigkeit: Code: [AUSKLAPPEN] If speed# > 0.1 speed = 0.1 If speed < 0 speed = 0 |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja is ja klar so soll es ja auch sein | ||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das wäre aber nicht sehr realistisch... | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh aber das auto soll ja dann von allein immer langsamer werden bis es wieder steht wenn ich taste 200 nicht drücke | ||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann machst du in der Hauptschleife eben noch so was wie:
Code: [AUSKLAPPEN] speed# = speed - 0.002 |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
Fredko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Falls es alleine langsamer werden soll, müsste man sich mit Reibung etc.
befassen, einfach geht es auch mit Code: [AUSKLAPPEN] speed=speed*0.8 ;Abbremsen oder speed=speed*1.2 ;Beschleunigen Dann sollte man aber auch um 0 herum, also z.B. -0.05 / 0.05 das Ergebnis auf 0 bringen, da es sonst zu großen Float Ungenauigkeiten führen könnte. |
||
! |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich meine das so:
das auto soll langsamer werden wenn ich die taste 200 los lasse. wenn ich sie wieder drücke soll es wieder schneller werden im moment fährt das auto dann max. geschwindegkeit weiter auch wenn ich die taste 200 los lasse. |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
So vielleicht?
Code: [AUSKLAPPEN] If Keydown(200)
If speed# < 0.1 speed = speed + 0.01 Else If speed# > 0 speed = speed - 0.01 Endif |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das is genau das was ich meine =)
aber warum fährt das auto dann immer -0.00999933 wenn ich keine taste drücke ? |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke mal das sind Floatungenauigkeiten... | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das liegt vielleicht daran, dass die Floats nicht so extrem genau sind und es Ungenauigkeiten bei der Umrechnung von den Zahlen, wie 0.01, in Floatwerte gibt.
So sollte es aber funktionieren: BlitzBasic: [AUSKLAPPEN] If speed# > 0 Then speed = speed - 0.01 Else speed = 0 mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
das geht jetzt auch aber dafür kann ich jetzt nicht mehr nach hinten fahren ![]() |
||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann mache es in etwa so:
BlitzBasic: [AUSKLAPPEN] If KeyDown(...) mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
noobyblaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh funz nicht | ||
Projekt: Crazy Racedriver [vorübergehend eingestellt]
Genre: Rennspiel Fortschritt: ca. 60% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group