espace pour tirer LE missile.
Code : Tout sélectionner
If InitSprite() = 0 Or InitKeyboard()=0
MessageRequester("Error","sponyu...",0)
EndIf
EnableExplicit
Structure vector
x.d
y.d
EndStructure
Define target.vector
Define bullet.vector
Define speed.vector
Define accumulation_mouvement.vector
Define deplacement.vector
target\x = 200
target\y = 200
bullet\x = 0
bullet\y = 0
accumulation_mouvement\x = 50
accumulation_mouvement\y = 0
Define virage_max.d = 0.001
Define vitesse_missile = 5
Define fired = #False
If OpenWindow(0, 0, 0, 800, 600, "je l'aurai un jour ....", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
SetFrameRate(30)
If CreateSprite(0, 10, 10)
If StartDrawing(SpriteOutput(0))
Box(0,0,10,10, RGB(255,255,255))
StopDrawing()
EndIf
EndIf
If CreateSprite(1, 5, 5)
If StartDrawing(SpriteOutput(1))
Circle(0,0,10, RGB(255,255,255))
StopDrawing()
EndIf
EndIf
Repeat
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Space) And Not fired
fired = #True
EndIf
target\y + 5
target\x + Random(5)
If target\y > 500
target\y = 200
target\x = 200
EndIf
If fired
speed\x = (target\x - bullet\x) * virage_max
speed\y = (target\y - bullet\y) * virage_max
;speed\x + Random(1) * 0.001
;speed\y + Random(1) * 0.001
deplacement\x = (speed\x + accumulation_mouvement\x) / Sqr(Pow(speed\x + accumulation_mouvement\x, 2) + Pow(speed\y + accumulation_mouvement\y, 2))
deplacement\y = (speed\y + accumulation_mouvement\y) / Sqr(Pow(speed\x + accumulation_mouvement\x, 2) + Pow(speed\y + accumulation_mouvement\y, 2))
accumulation_mouvement\x = deplacement\x
accumulation_mouvement\y = deplacement\y
bullet\x + deplacement\x * vitesse_missile
bullet\y + deplacement\y * vitesse_missile
EndIf
ClearScreen(0)
DisplaySprite(0,target\x,target\y)
DisplaySprite(1,bullet\x,bullet\y)
FlipBuffers()
Delay(10)
Until KeyboardPushed(#PB_Key_Escape)
EndIf
Else
MessageRequester("Error","sponyudutout...",0)
EndIf