depuis ce matin je me prends la tête sur un truc con !
J'ai un point A qui doit se rapprocher d'un point B. je voudrais qu'en fonction de la distance entre les 2 points, le Point A accélère puis ralentit a la proche du Point B.
Avec une vitesse Maximum a ne pas depasser
Voici ce que j'ai fait :
Code : Tout sélectionner
InitSprite()
InitMouse()
InitKeyboard()
OpenWindow(0, 0, 0, 800, 600, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
Ax=320
Ay=200
#VitesseMax=16
Repeat
; Il est très important de traiter tous les événements restants dans la file d'attente à chaque tour
;
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
ExamineMouse()
Bx=MouseX()
By=MouseY()
;#############################
;C'est ici que ça se passe
If Ax<Bx-10 Or Ax>Bx+10
diff=Bx-Ax
vx=(diff*32/255) ;chiffre prit un peu au hasard
If vx>#VitesseMax:vx=#VitesseMax:EndIf
If vx<-#VitesseMax:vx=-#VitesseMax:EndIf
Ax+vx
EndIf
If Ay<By-10 Or Ay>By+10
diff=By-Ay
vy=(diff*32/55) ;chiffre prit un peu au hasard
If vy>#VitesseMax:vy=#VitesseMax:EndIf
If vy<-#VitesseMax:vy=-#VitesseMax:EndIf
Ay+vy
EndIf
;#############################
ClearScreen(RGB(0, 0, 0))
StartDrawing(screenoutput())
Circle(Bx,By,5,#Blue)
Circle(Ax,Ay,5,#Red)
StopDrawing()
FlipBuffers()
Delay(1)
ForEver