Auto acceleration
Übersicht

OrbitBetreff: Auto acceleration |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
wie kann ich machen, dass wenn man die Beschleunigungstaste losläßt das Auto ein stückchen weiterfährt und dabei an Geschwindigkeit verliert, bis es stehen bleibt? Code: [AUSKLAPPEN] Strict SetGraphicsDriver(D3D7Max2DDriver()) Graphics 800,600,32,100 Global AutoX:Float = GraphicsWidth()/2 Global AutoY:Float = GraphicsHeight()/2 Global AutoDreh:Float Global AutoSpeed:Float Global Auto:TImage = LoadImage("gfx/Auto.bmp") MidHandleImage(Auto) SetMaskColor(255,0,255) Repeat Cls SetRotation(AutoDreh) DrawImage Auto,AutoX,AutoY SetRotation(0) If KeyDown(KEY_UP) Then AutoSpeed :+.01 AutoX :+ (AutoSpeed * Cos(AutoDreh)) AutoY :+ (AutoSpeed * Sin(AutoDreh)) ElseIf KeyDown(KEY_DOWN) Then AutoSpeed :-.01 AutoX :- (AutoSpeed * Cos(AutoDreh)) AutoY :- (AutoSpeed * Sin(AutoDreh)) EndIf If KeyDown(KEY_RIGHT) Then AutoDreh :+.8 If KeyDown(KEY_LEFT) Then AutoDreh :-.8 Flip Delay(20) Until KeyHit(KEY_ESCAPE) fg, Orbit |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
in die mainloop
autospeed :*.95 |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Orbit |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
das funktioniert bei mir aus irgendeinen Grund nicht. Code: [AUSKLAPPEN] Strict SetGraphicsDriver(D3D7Max2DDriver()) Graphics 800,600,32,100 Global AutoX:Float = GraphicsWidth()/2 Global AutoY:Float = GraphicsHeight()/2 Global AutoDreh:Float Global AutoSpeed:Float Global Auto:TImage = LoadImage("gfx/Auto.bmp") MidHandleImage(Auto) SetMaskColor(255,0,255) Repeat Cls AutoSpeed :*.95 SetRotation(AutoDreh) DrawImage Auto,AutoX,AutoY SetRotation(0) If KeyDown(KEY_UP) Then AutoSpeed :+.07 AutoX :+ (AutoSpeed * Cos(AutoDreh)) AutoY :+ (AutoSpeed * Sin(AutoDreh)) ElseIf KeyDown(KEY_DOWN) Then AutoSpeed :-.07 AutoX :- (AutoSpeed * Cos(AutoDreh)) AutoY :- (AutoSpeed * Sin(AutoDreh)) EndIf If KeyDown(KEY_RIGHT) Then AutoDreh :+.8 If KeyDown(KEY_LEFT) Then AutoDreh :-.8 Flip Delay(20) Until KeyHit(KEY_ESCAPE) fg, Orbit |
||
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das funktioniert sogar sehr gut, nur dein Code leider nicht ![]() Code: [AUSKLAPPEN] Strict SetGraphicsDriver(D3D7Max2DDriver()) Graphics 800,600,32,100 Global AutoX:Float = GraphicsWidth()/2 Global AutoY:Float = GraphicsHeight()/2 Global AutoDreh:Float Global AutoSpeed:Float 'Global Auto:TImage = LoadImage("gfx/Auto.bmp") 'MidHandleImage(Auto) SetMaskColor(255,0,255) Repeat Cls SetRotation(AutoDreh) DrawRect AutoX,AutoY,20,20 SetRotation(0) If KeyDown(KEY_UP) Then AutoSpeed :+.07 ElseIf KeyDown(KEY_DOWN) Then AutoSpeed :-.07 Else AutoSpeed :* .95 If AutoSpeed < 0.01 Then AutoSpeed = 0 EndIf If KeyDown(KEY_RIGHT) Then AutoDreh :+.8 If KeyDown(KEY_LEFT) Then AutoDreh :- .8 AutoX :- (AutoSpeed * Cos(AutoDreh)) AutoY :- (AutoSpeed * Sin(AutoDreh)) DrawText "AutoSpeed : " + AutoSpeed,20,20 Flip Delay(20) Until KeyHit(KEY_ESCAPE) Zur Erklärung: Dein Fehler war es, das du dieAutoPosition (AutoX und AutoY) nur während des KeyDowns geupdated hast. Also sobald jemand keine Taste gedrückt hat, so wurde auch nicht x und y neuerrechnet und blieb somit beim alten Wert und das auto blieb sofort stehen. Mfg klepto2 |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group