Trouver la direction /angle d'un déplacement
Publié : lun. 28/mai/2012 13:07
salut
J'essaie de trouver une direction ou un angle depuis un déplacement clavier.
Je sais le faire si j'ai une "cible" :
Mais si je n'ai pas de cible, je n'ai pas encore trouvé :
Vous auriez une idée (sans prendre en compte les touche du clavier, car je souhaite que ce soit utilisable en fait avec une manette et un stick directionnel
).
J'essaie de trouver une direction ou un angle depuis un déplacement clavier.
Je sais le faire si j'ai une "cible" :
Code : Tout sélectionner
Degree(ATan2((cible_y- player\y),(cible_x- player\x)))
Code : Tout sélectionner
#win = 0
#speed= 4
InitSprite() : InitSprite3D() :InitKeyboard()
OpenWindow(#win,0,0,800,600, "Direction_deplacement", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#win),0,0,800,600,0,0,0)
CreateSprite(0,64,64,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(0))
Box(0,0,64,64,#White)
StopDrawing()
CreateSprite3D(0,0)
Repeat
event =WaitWindowEvent(10)
ExamineKeyboard()
;{ keyboard
If KeyboardPushed(#PB_Key_Up)
y - #speed
ElseIf KeyboardPushed(#PB_Key_Down)
y + #speed
EndIf
If KeyboardPushed(#PB_Key_Right)
x + #speed
ElseIf KeyboardPushed(#PB_Key_Left)
x - #speed
EndIf
direction.f = Degree(ATan2(x,y)); ici, je bloque ^^
;}
ClearScreen(RGB(125,125,125))
Start3D()
DisplaySprite3D(0,x,y)
RotateSprite3D(0,direction,0)
Stop3D()
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,"Direction : "+Str(direction),#black)
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or event = #PB_Event_CloseWindow
