Probleme mit der Geschwindigkeit des Auto

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

bruce185

Betreff: Probleme mit der Geschwindigkeit des Auto

BeitragDo, Aug 04, 2005 4:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
also, ich brauche mal eure hilfe, und zwar bin ich gerade dabei ein kleines 2D Rennspiel zu proggen, soweit funktioniert alles, nur habe ich ein problem mit der Geschwindigkeit des Auto, ich möchte wenn ich nach vorne drücke Scancode(200) , dass das Auto langsam anfährt und immer schneller wird, bis eine bestimmte Gechwindigkeit erreicht ist, und wenn ich die Taste wieder los lasse, dann soll das Auto auch langsam wieder angehalten werden, wie macht man das am schnellsten, hier ist ein teil meiner Quelltext:

BlitzBasic: [AUSKLAPPEN]

;Den Grafik setzen
Graphics 800,600,32,2
SetBuffer BackBuffer()

;359 Bilder in array speichern
Dim auto(359)

;TFormFilter auf null setzen damit die Kanten abgerundet werden
TFormFilter 0

For winkel = 0 To 359
auto(winkel) = LoadImage(\"AutoRot.bmp\")
RotateImage auto(winkel),winkel
MaskImage auto(winkel),0,128,0
Next

Global x#, y#
;Geschwindigkeit auf 1 setzen
Global geschwindigkeit#=1

;Die Schleife
While Not KeyHit(1)
Cls

;Das Auto nach links bewegen
If KeyDown(203) Then winkel = winkel - 1
;Das auto nach rechts bewegen
If KeyDown(205) Then winkel = winkel + 1
If winkel > 359 Then winkel = 0
If winkel < 0 Then winkel = 359

If KeyDown(200) Then
x = x + Cos(winkel)*geschwindigkeit
y = y + Sin(winkel)*geschwindigkeit
EndIf

;Das auto auf dem Bildschirm bringen
DrawImage auto(winkel),x,y

Flip
Wend
End


dieser Code bewirkt nur dass das auto nach vorne, rechts und links fährt,
und wie kann ich das jetzt so ändern dass das auto langsam anfährt, und immer schneller wird, und wenn die taste wieder losgelassen wird, dass das auto wieder langsamer wird, das kann ich doch mit If Not KeyDown machen, ich weiss nur nicht was ich schreiben muss, für jede hilfe bin ich euch sehr dankbar Wink

bruce185

Xaron

BeitragDo, Aug 04, 2005 7:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach es doch so (Pseudocode):

Code: [AUSKLAPPEN]

maxbeschleunigung# = ...
reibung# = ... ;Wert < 1.0
If Keydown...
  beschleunigung# = maxbeschleunigung
Else
  beschleunigung# = 0
End If


Und dann:

Code: [AUSKLAPPEN]

geschwindigkeit = geschwindigkeit + beschleunigung
If geschwindigkeit > maxgeschwindigkeit
  geschwindigkeit = maxgeschwindigkeit
End If
;Reibung...
geschwindigkeit = geschwindigkeit * reibung

x = x + Cos(winkel)*geschwindigkeit
y = y + Sin(winkel)*geschwindigkeit


Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

BlitzBasic303

Betreff: RE:

BeitragDo, Aug 04, 2005 8:35
Antworten mit Zitat
Benutzer-Profile anzeigen
mach:
Code: [AUSKLAPPEN]

If keydown(200) then speed# = speed# + 0.5
speed# = speed# - 0.2
if speed# < 0 Then speed# = 0
if speed# > 50 Then speed# = 50 ;kannste ja beliebig ändern


und speed# ist dann deine Geschwindigkeit

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group