Cos-Sin Problem
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
OrbitBetreff: Cos-Sin Problem |
Fr, Aug 11, 2006 11:14 Antworten mit Zitat |
|
---|---|---|
Hallo,
mein Auto fährt nicht immer exakt in die Richtung, in der es zeigt. Code: [AUSKLAPPEN] Strict SetGraphicsDriver(D3D7Max2DDriver()) Graphics 800,600,32,100 Global AutoX:Int = GraphicsWidth()/2 Global AutoY:Int = 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)) EndIf If KeyDown(KEY_DOWN) Then AutoSpeed :-.01 AutoX :- (AutoSpeed/2 * Cos(AutoDreh)) AutoY :- (AutoSpeed/2 * Sin(AutoDreh)) EndIf If KeyDown(KEY_RIGHT) Then AutoDreh :+.8 If KeyDown(KEY_LEFT) Then AutoDreh :-.8 If AutoSpeed = 4 Then AutoSpeed = 4 Flip Until KeyHit(KEY_ESCAPE) endif fg, Orbit |
||
Skulk |
Fr, Aug 11, 2006 11:33 Antworten mit Zitat |
|
---|---|---|
was soll dieser punkt hier bewirken?
Code: [AUSKLAPPEN] If AutoSpeed = 4 Then AutoSpeed = 4
ansonsten ist die lösung des problems simple du musst AutoX und AutoY als float definieren. ich hab hier mal die images auskommentiert und gegen ein rechteck getauscht. Code: [AUSKLAPPEN] Strict SetGraphicsDriver(D3D7Max2DDriver()) Graphics 800,600 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 DrawRect AutoX, AutoY, 20,5 SetRotation(0) If KeyDown(KEY_UP) Then AutoSpeed :+.01 AutoX :+ (AutoSpeed * Cos(AutoDreh)) AutoY :+ (AutoSpeed * Sin(AutoDreh)) EndIf If KeyDown(KEY_DOWN) Then AutoSpeed :-.01 AutoX :- (AutoSpeed/2 * Cos(AutoDreh)) AutoY :- (AutoSpeed/2 * Sin(AutoDreh)) EndIf If KeyDown(KEY_RIGHT) Then AutoDreh :+.8 If KeyDown(KEY_LEFT) Then AutoDreh :-.8 Flip Until KeyHit(KEY_ESCAPE) |
||
War doesn't determine who's right,
war determines who's left... |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group