exemple
Publié : mer. 02/avr./2014 16:55
Pouvez-vous me dire si cet exemple fonctionne sur votre ordi.
Il n'est pas très "sexy" mais je le mettrais peut-être dans la doc.
M.
Il n'est pas très "sexy" mais je le mettrais peut-être dans la doc.
Code : Tout sélectionner
;ATTENTION le retour vers le bureau (ALT+TAB) n'est pas gérer dans cet exemple.
;Initialisation des sprites, du clavier et de la souris
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialiser l'écran.")
End
EndIf
If OpenScreen(800,600,32,"Exemple OpenScreen") = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran.")
End
EndIf
FPS = Ecran_Frequence
;Curseur de la souris
CreateSprite(0,20,20,#PB_Sprite_PixelCollision)
StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 255, 255))
StopDrawing()
;Afficheur "Survoler pour quitter"
CreateSprite(1,200,100,#PB_Sprite_PixelCollision)
StartDrawing(SpriteOutput(1))
Box(0, 0, 200, 100, RGB(255, 255, 0))
DrawText(10,25,"Survoler pour quitter",RGB(255,255,255), RGB(255,0,0))
StopDrawing()
Repeat
ClearScreen(RGB(128,128,128))
;On lit les évènements clavier et souris
ExamineMouse()
ExamineKeyboard()
;Position de la souris
x = MouseX()
y = MouseY()
;Affichage du curseur de la souris en temps réel
DisplaySprite(0, x, y)
;Affichage de l'afficheur "Survoler pour quitter"
DisplaySprite(1, 500, 50)
;Détection de collision
If SpriteCollision(0, x, y, 1, 500, 50)<>0
End ; Si collision alors on ferme le programme
EndIf
;Calcul du FPS
FPS_Counter + 1
If FPS_Counter >= FPS
FPS = FPS_Counter * 1000 / (ElapsedMilliseconds() - FPS_ElapsedTime)
FPS_Counter = 0
FPS_ElapsedTime = ElapsedMilliseconds()
EndIf
;Affichage du FPS
StartDrawing(ScreenOutput())
DrawText(0, 0, "FPS : " + StrD(FPS, 1))
DrawText(0, 75, "Appuyez sur ESC pour quitter",RGB(0,0,0), RGB(255,255,255))
DrawText(0, 550, "Appuyez sur les touches fléchées du clavier tout en bougeant la souris",RGB(255,0,0), RGB(0,255,0))
StopDrawing()
;Gestion des 4 touches fléchées
If KeyboardPushed(#PB_Key_Right)
RotateSprite(0,45,#PB_Relative)
EndIf
If KeyboardPushed(#PB_Key_Left)
RotateSprite(0,1,#PB_Relative)
EndIf
If KeyboardPushed(#PB_Key_Up)
ZoomSprite(0,100,100)
EndIf
If KeyboardPushed(#PB_Key_Down)
ZoomSprite(0,20,20)
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)