En fait non je ne pense pas avoir dit une bétise.
Petite balle rebondissante à tester.
Code : Tout sélectionner
EnableExplicit
;Quelques variables
Global Event
Global Image, Ground
Global Ball, BallX = 400, BallY = 200, BallVelocityY.f = 5,BallGravityY.f = 2
;Initialisation diverses
If InitSprite()
InitKeyboard()
InitMouse()
EndIf
UsePNGImageDecoder()
UsePNGImageEncoder()
;Creation du screen
OpenWindow(0, 0, 0, 800, 600, "Ca ne sert à rien", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600)
;Création et sauvegarde de l'image de référence pour la création des autres sprites
;Cette image est sauvegardée au format PNG afin de gérér la transparence.
Image = CreateImage(#PB_Any, 8, 8, 24, RGB(255, 255, 255))
SaveImage(Image, "WhiteSquare.png", #PB_ImagePlugin_PNG)
;Creation du sol
Ground = LoadSprite(#PB_Any, "WhiteSquare.png")
ZoomSprite(Ground, 800, 32)
;Creation de la ball
Ball = LoadSprite(#PB_Any, "WhiteSquare.png")
ZoomSprite(Ball, 16, 16)
;Boucle evenementielle
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Event=0
FlipBuffers()
ClearScreen(RGB(135, 206, 235))
;Evenement clavier
ExamineKeyboard()
;Affichage du sol
DisplaySprite(Ground, 0, 570)
;Affichage de la balle
DisplaySprite(Ball, BallX, BallY)
;La balle est en mouvement
BallVelocityY + BallGravityY
BallY + BallVelocityY
If SpriteCollision(Ball, BallX, BallY+10, Ground, 0, 570)
BallY= 554
BallVelocityY * -1
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Remplacer WindowEvent() par WaitWindowEvent() le jeu sera bloqué.