Code : Tout sélectionner
;/*********************************************
;/* \\ Aranoîde // *
;/* \\ Crée par Garzul | 2004 // *
;/* \\JaPBe > 2.4.7.17 || Purebasic > 3.91 // *
;/*********************************************
#Ecran_Largeur = 900 ;Definie la largeur de l'écran
#Ecran_Hauteur = 600 ;Definie la hauteur de l'écran
;Enumeration des constant
Enumeration
#Souris
#Spider
#MegaBombe
EndEnumeration
;Variable global et variable du jeux
Global Intro , AvanceParticle , AffichePerdu , Font1 , Font2 , Font3 , Score , x1 , y1 , Level , LevelVery , Temps , hwnd , MegaBombe , Aides
Intro = 1
AvanceParticle = 0
AffichePerdu = 0
Score = 0
Level = 5
LevelVery = 0
MegaBombe = 1
Aides = 0
;chargement d'une police
Font1 = LoadFont(#PB_Any,"Comic Sans MS",50)
Font2 = LoadFont(#PB_Any,"Comic Sans MS",60)
Font3 = LoadFont(#PB_Any,"Comic Sans MS",20)
;- On crée la fenêtre.
hwnd = OpenWindow(0, 0, 0, #Ecran_Largeur, #Ecran_Hauteur, #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Invader")
;- On ouvre l'openscreen.
If InitSprite() = 0
MessageRequester("Erreur", "Impossible d'initialiser la souris ,le clavier ou l'écran. Vérifiez la présence de DirectX 7 ou supérieur.", 0 | #MB_IconError)
End
EndIf
If InitKeyboard() = 0
MessageRequester("Erreur", "Impossible d'initialiser le clavier veuillez verifier si il est bien connecter à votre ordinateur.", 0 | #MB_IconError)
End
EndIf
If InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialiser la souris veuillez verifier si elle est bien connecter à votre ordinateur.", 0 | #MB_IconError)
End
EndIf
If OpenWindowedScreen(hwnd, 0, 0, #Ecran_Largeur, #Ecran_Hauteur, 1, 0, 0) = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran.", 0 | #MB_IconError )
End
EndIf
;-Linked list spider
Structure Spider
x.l
y.l
Vitesse.l
EndStructure
NewList Spider.Spider()
ExamineKeyboard() ;Pour sieur Aranoth :D
;-Sprite
;Création des sprite du jeux
CreateSprite(#Souris,40,40,0)
StartDrawing(SpriteOutput(#Souris)) : DrawingMode(4)
LineXY(5,20,35,20,RGB($FF,250,$80))
LineXY(20,0,20,40,RGB($FF,250,$80))
Circle(20,20,10,RGB($EC,$6,$C))
Circle(20,20,20,RGB($EC,$6,$C))
StopDrawing()
CreateSprite(#Spider,40,40,0)
StartDrawing(SpriteOutput(#Spider)) : DrawingMode(4)
Circle(20,20,10,RGB($EC,$6,$C))
Circle(15,15,2,RGB($29,$ED,$38))
Circle(20,15,2,RGB($29,$ED,$38))
Line(0,11,10,10,RGB($E2,$DA,$34))
Line(0,17,10,10,RGB($E2,$DA,$34))
Line(0,5,10,10,RGB($E2,$DA,$34))
Line(20,10,10,10,RGB($E2,$DA,$34))
Line(20,17,10,10,RGB($E2,$DA,$34))
Line(20,5,10,10,RGB($E2,$DA,$34))
StopDrawing()
CreateSprite(#MegaBombe,40,40,0)
StartDrawing(SpriteOutput(#MegaBombe)) : DrawingMode(1)
Box(0,0,10,50,RGB($63,$D6,$41))
StopDrawing()
;Ajout et disposition des spider
For i = 0 To Level
AddElement(Spider())
Spider()\x = 10 + Random(870)
Spider()\y = 600 + Random(150)
Spider()\Vitesse = 2
Next i
;-Temps pour les clic
Procedure TimerProc(hnd.l, uMsg.l, idEvent.l, dwTime.l)
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
If Temps = 1
Temps = 0
EndIf
EndSelect
EndSelect
EndProcedure
;-Afficher les spider
Procedure AffichageSpider()
ResetList(Spider())
ForEach Spider()
If Spider()\y < 100
AffichePerdu = 1
EndIf
DisplayTransparentSprite(#Spider , Spider()\x , Spider()\y )
Spider()\y - Spider()\Vitesse
Next
EndProcedure
;-Affichage du plato de jeux
Procedure AffichePlato()
StartDrawing(ScreenOutput())
Line(0 , 100 , 900 , 0 , RGB($29,$ED,$38))
Line(0 , 597 , 900 , 0 , RGB($2F,$3D,$E8))
DrawingFont(UseFont(Font1))
DrawingMode(1)
FrontColor($C0,$C0,$C0) : Locate(10,5)
DrawText("Level " + Str(LevelVery))
FrontColor(255,0,0) : Locate(10,10)
DrawText("Level " + Str(LevelVery))
FrontColor($C0,$C0,$C0) : Locate(530,5)
DrawText("Score : " + Str(Score))
FrontColor(255,0,0) : Locate(530,10)
DrawText("Score : " + Str(Score))
StopDrawing()
EndProcedure
;-Intro
Procedure Intro()
StartDrawing(ScreenOutput())
For i = 0 To 1000
Box(i * Cos(i),i,1,1,RGB($D0,$46,$88))
box(i * Sin(i),i,1,1,RGB($4E,$DD,$39))
Line(i + Cos(i),AvanceParticle * Sin(i),1,1,RGB($42,$51,$D5))
Line(i + Sin(i),AvanceParticle + Sin(i),1,1,RGB($45,$C7,$D1))
Next
If AvanceParticle > 70
DrawingFont(UseFont(Font2))
DrawingMode(1)
FrontColor($C0,$C0,$C0) : Locate(220,70)
DrawText("ARANOÏDE")
FrontColor(100,150,250) : Locate(220,75)
DrawText("ARANOÏDE")
DrawingFont(UseFont(Font3))
FrontColor($C0,$C0,$C0) : Locate(353,160)
DrawText("Garzul | 2004")
FrontColor(150,250,150) : Locate(353,163)
DrawText("Garzul | 2004")
FrontColor($C0,$C0,$C0) : Locate(370,270)
DrawText("F1 = AIDES")
FrontColor(200,50,100) : Locate(370,273)
DrawText("F1 = AIDES")
FrontColor( 0 , 250 , 0 )
DrawingMode(1)
Locate( 250 , 450 )
DrawText(" Appuyer sur entrer pour jouer ")
EndIf
StopDrawing()
AvanceParticle + 2
If AvanceParticle > 600
AvanceParticle = 600
EndIf
If KeyboardPushed(#PB_Key_Return)
Intro = 0
EndIf
EndProcedure
;-Perdu
Procedure Perdu()
StartDrawing(ScreenOutput())
DrawingFont(UseFont(Font2))
DrawingMode(1)
FrontColor($C0,$C0,$C0) : Locate(220,100)
DrawText("ARANOÏDE")
FrontColor(0,250,250) : Locate(220,105)
DrawText("ARANOÏDE")
FrontColor($C0,$C0,$C0) : Locate(150,300)
DrawText("Vous avez perdu")
FrontColor(255,0,0) : Locate(150,307)
DrawText("Vous avez perdu")
FrontColor(0,255,0) : Locate(100 ,400)
DrawingFont(UseFont(Font1))
DrawText("Recommencer = Entrer")
FrontColor(0,0,255) : Locate(270,480)
DrawingFont(UseFont(Font1))
DrawText("Score = " + Str(Score))
DrawingFont(UseFont(Font3))
FrontColor($C0,$C0,$C0) : Locate(360,220)
DrawText("Garzul | 2004")
FrontColor(150,250,150) : Locate(360,223)
DrawText("Garzul | 2004")
FrontColor($C0,$C0,$C0) : Locate(370,260)
DrawText("F1 = AIDES")
FrontColor(200,50,100) : Locate(370,263)
DrawText("F1 = AIDES")
StopDrawing()
;Si on appui sur entrer on reload ^^
If KeyboardReleased(#PB_Key_Return)
Score = 0
Level = 5
LevelVery = 0
AffichePerdu = 0
Intro = 0
MegaBombe = 1
ForEach Spider()
Spider()\Vitesse = 2
Spider()\x = 10 + Random(870)
Spider()\y = 600 + Random(150)
Next
EndIf
EndProcedure
;-Collision
Procedure Collision()
ForEach Spider()
If SpriteCollision(#Souris , x1 , y1 , #Spider , Spider()\x , Spider()\y) And MouseButton(1) And Temps = 0
DeleteElement(Spider())
Score + 1
EndIf
Next
If CountList(Spider()) = 0
Level + 1
LevelVery + 1
ForEach Spider()
Spider()\Vitesse + 1
Next
For i = 0 To Level
AddElement(Spider())
Spider()\x = 10 + Random(870)
Spider()\y = 600 + Random(150)
Spider()\Vitesse = 2
Next i
EndIf
If KeyboardPushed(#PB_Key_Space) And MegaBombe = 1
MegaBombe = 0
Score + 50
ForEach Spider()
ClearList(Spider())
Next
EndIf
EndProcedure
;-Aide
Procedure Aides()
StartDrawing(ScreenOutput())
DrawingFont(UseFont(Font2))
DrawingMode(1)
FrontColor($C0,$C0,$C0) : Locate(75,0)
DrawText("ARANOÏDE AIDES")
FrontColor(0,250,250) : Locate(75,5)
DrawText("ARANOÏDE AIDES")
FrontColor(0,255,0) : Locate(100 ,580)
DrawingFont(UseFont(Font1))
DrawText("Recommencer = Entrer")
DrawingFont(UseFont(Font3))
FrontColor($C0,$C0,$C0) : Locate(360,100)
DrawText("Garzul | 2004")
FrontColor(150,250,150) : Locate(360,103)
DrawText("Garzul | 2004")
FrontColor(150,0,0) : Locate(200,200)
DrawText("Bienvenue et merci de jouer à Aranoîde")
FrontColor($C0,$C0,$C0) : Locate(350,270)
DrawText("BUT DU JEUX :")
FrontColor(150,150,0) : Locate(350,273)
DrawText("BUT DU JEUX :")
FrontColor(0,150,150) : Locate(0,340)
DrawText("Le but de ce jeux est de tuer toute les araignée avant quelle n'arrivent")
FrontColor(0,150,150) : Locate(0,375)
DrawText("à la ligne limite . Pour cela vous avez à votre disposition deux armes : ")
FrontColor(150,0,150) : Locate(0,430)
DrawText("Le fusil = Clic gauche : Arme normale pour éradiquer les araignée .")
FrontColor(150,0,125) : Locate(0,480)
DrawText("La MegaBombe = Espace : Arme lourde pour exploser les araignée .")
FrontColor($C0,$C0,$C0) : Locate(390,530)
DrawText("TOUCHE :")
FrontColor(150,150,0) : Locate(390,533)
DrawText("TOUCHE :")
FrontColor(50,0,250) : Locate(75,562)
DrawText("F1 = Aides | Echap = Quitter | Pour quitter l'aides : Entrer")
StopDrawing()
DisplaySprite(#Souris,850,430)
DisplaySprite(#MegaBombe,870,480)
If KeyboardReleased(#PB_Key_Return)
Score = 0
Level = 5
LevelVery = 0
AffichePerdu = 0
Intro = 1
MegaBombe = 1
Aides = 0
ForEach Spider()
Spider()\Vitesse = 2
Spider()\x = 10 + Random(870)
Spider()\y = 600 + Random(150)
Next
EndIf
EndProcedure
Temps = 1
Timer = SetTimer_(WindowID(),1,100,@TimerProc())
;*______________________________________*__**__*__**__*__**__*___________________________________________*
;/**************************************** //\\ BOUCLE //\\ *********************************************
;/**************************************** \\//*||**||*\\// *********************************************
;*______________________________________*__**__*__**__*__**__*___________________________________________*
Repeat
Select WindowEvent()
Case #WM_LBUTTONDOWN
Temps = 1
Case #WM_LBUTTONUP
Temps = 0
EndSelect
ExamineMouse()
x1 = MouseX()
y1 = MouseY()
;Si on appui sur F1 l'aides apparaît :D
If KeyboardReleased(#PB_Key_F1)
Aides = 1
EndIf
If Aides = 1
Aides()
EndIf
If MegaBombe = 1 And AffichePerdu = 0 And Intro = 0 And Aides = 0
DisplaySprite(#MegaBombe,870,550)
EndIf
If AffichePerdu = 1 And Aides = 0
Perdu()
EndIf
If Intro = 0 And AffichePerdu = 0 And Aides = 0
AffichePlato()
DisplayTransparentSprite(#Souris,x1,y1)
AffichageSpider()
Collision()
EndIf
If Intro = 1 And Aides = 0
Intro()
EndIf
FlipBuffers() ;Inversion des deux buffer
ClearScreen( 0 , 0 , 0 )
If IsScreenActive() = 0
End
EndIf
;Fin du programme si appuyer sur echap .
ExamineKeyboard()
Until Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
.