


Code : Tout sélectionner
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Erreur","Ne peut pas initialiser les sprites ou le clavier." + Chr(13) + "Verifiez que vous avez DirectX 7 ou plus.",#MB_ICONError)
End
EndIf
InitJ.l = InitJoystick()
InitM.l = InitMouse()
;- Declarations
; Constantes
Enumeration
#Non
#Oui
#Ennemi
#Viseur
EndEnumeration
; Variables
Global Sortie.b,Viseur.point,Ennemi.point,Sensibilite.b,Score.l
Viseur\X = Random(780) : Viseur\Y = Random(580) : Ennemi\X = Random(755) : Ennemi\Y = Random(558)
Sensibilite = 10
If OpenScreen(800,600,32,"Tir") = 0
MessageRequester("Erreur","Ne peut pas ouvrir l'écran.",#MB_ICONError)
End
EndIf
TransparentSpriteColor(-1,255,0,255)
CatchSprite(#Viseur,?Viseur)
CatchSprite(#Ennemi,?Ennemi)
Procedure Clavier()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape) : Sortie = #Oui : EndIf
EndProcedure
Procedure Affichage()
ClearScreen(0,0,80)
DisplayTransparentSprite(#Ennemi,Ennemi\X,Ennemi\Y)
DisplayTransparentSprite(#Viseur,Viseur\X,Viseur\Y)
FlipBuffers()
EndProcedure
Procedure VerifViseur()
If Viseur\X < 0 : Viseur\X = 0 : EndIf
If Viseur\X > 780 : Viseur\X = 780 : EndIf
If Viseur\Y < 0 : Viseur\Y = 0 : EndIf
If Viseur\Y > 580 : Viseur\Y = 580 : EndIf
EndProcedure
Procedure Tir()
If SpriteCollision(#Viseur,Viseur\X,Viseur\Y,#Ennemi,Ennemi\X,Ennemi\Y)
Score + 1
ClearScreen(255,255,255)
StartDrawing(ScreenOutput())
DrawingMode(1)
Texte.s = "Score : " + Str(Score)
Locate((800 - TextLength(Texte)) / 2,295)
DrawText(Texte)
StopDrawing()
FlipBuffers()
Viseur\X = Random(780) : Viseur\Y = Random(580)
Ennemi\X = Random(755) : Ennemi\Y = Random(558)
If Score = 20
CloseScreen()
MessageRequester("Bravo","Vous avez tué 20 têtes.")
End
EndIf
Delay(250)
EndIf
EndProcedure
Procedure Souris()
ExamineMouse()
If MouseButton(1) : Tir() : EndIf
Viseur\X + MouseDeltaX() : Viseur\Y + MouseDeltaY()
EndProcedure
Procedure Ennemi()
Ennemi\X + (Random(20) - 10) : Ennemi\Y + (Random(16) - 8)
If Ennemi\X < 0 : Ennemi\X = 0 : EndIf
If Ennemi\X > 755 : Ennemi\X = 755 : EndIf
If Ennemi\Y < 0 : Ennemi\Y = 0 : EndIf
If Ennemi\Y > 558 : Ennemi\Y = 558 : EndIf
EndProcedure
Procedure Joystick()
ExamineJoystick()
If JoystickButton(1) : Tir() : EndIf
Viseur\X + (JoystickAxisX() * Sensibilite) : Viseur\Y + (JoystickAxisY() * Sensibilite)
EndProcedure
Repeat
Affichage()
Clavier()
If InitM : Souris() : EndIf
If InitJ : Joystick() : EndIf
VerifViseur()
Ennemi()
Until Sortie = #Oui
End
DataSection
Viseur:
IncludeBinary "Viseur.bmp"
Ennemi:
IncludeBinary "Ennemi.bmp"
EndDataSection