
Code : Tout sélectionner
; connerie codé par Oliv d'après celle de Dobro
#dobro =1
#Police =1
#Sprite =1
Structure sprite
x.l
y.l
sensx.l
sensy.l
EndStructure
Dim sprite.sprite(1)
Structure Decale
Sens.l
Actif.l
EndStructure
Decale.Decale
; ***********************************
Resultat = InitSprite ()
FontID = LoadFont ( #Police , "arial" , 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_ ( #SM_CXSCREEN ): ;=largeur de l'ecran
EcranY = GetSystemMetrics_ ( #SM_CYSCREEN ): ;=hauteur de l'ecran
WindowID = OpenWindow (1, 0, 0,320, 200, #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello" )
Result = OpenWindowedScreen ( WindowID (1) ,0,0, 320, 200, 1, 0,0)
; creation d'un Sprite
CreateSprite (1, 64, 64)
StartDrawing ( SpriteOutput (1) ) ; on dessine dedans
Circle (32, 32, 32 , RGB ($FF,$FF,$0))
StopDrawing ()
Resultat = InitMouse ()
sprite(1)\x=160
sprite(1)\y=100
sprite(1)\sensx=2
sprite(1)\sensy=2
Repeat
ExamineMouse ()
WindowEvent ()
Delay (2)
If MouseButton (2)
End
EndIf
sprite(1)\x=sprite(1)\x+sprite(1)\sensx
sprite(1)\y=sprite(1)\y+sprite(1)\sensy
If sprite(1)\x<0
sprite(1)\sensx=-sprite(1)\sensx
Decale\Sens = 1
Decale\Actif = 0
Beep_ (100,50)
EndIf
If sprite(1)\x>320-64
sprite(1)\sensx=-sprite(1)\sensx
Decale\Sens = 2
Decale\Actif = 0
Beep_ (100,50)
EndIf
If sprite(1)\y>200-64
sprite(1)\sensy=-sprite(1)\sensy
Decale\Sens = 3
Decale\Actif = 0
Beep_ (80,50)
EndIf
If sprite(1)\y<0
sprite(1)\sensy=-sprite(1)\sensy
Decale\Sens = 4
Decale\Actif = 0
Beep_ (80,50)
EndIf
DisplaySprite (1, sprite(1)\x, sprite(1)\y)
; Decale la fenêtre
If Decale\Actif < 10
Select Decale\sens
Case 1
xwin = WindowX()
ywin = WindowY()
MoveWindow (xwin + 1,ywin)
Decale\Actif + 1
Case 2
xwin = WindowX()
ywin = WindowY()
MoveWindow ( xwin - 1,ywin)
Decale\Actif + 1
Case 3
xwin = WindowX()
ywin = WindowY()
MoveWindow (xwin,ywin - 1)
Decale\Actif + 1
Case 4
xwin = WindowX()
ywin = WindowY()
MoveWindow ( xwin,ywin + 1)
Decale\Actif + 1
EndSelect
EndIf
FlipBuffers (): ; affiche l'ecran
ClearScreen (0, 0, 0) : ;efface l'ecran
Until Event= #PB_Event_CloseWindow