Bonjour j'annonce une bonne et mauvaise nouvelle la mauvaise c'est que j'ai envie d'arreter ce projet qui étais bien avancer ( Il ne manquer pas beaucoup de chose ) le seul probléme c'est que je suis pas trés bon à crée des map pour un labyrinthe et que je veux me retirer vers des projet plus interessant que j'ai en tête donc ce projet tombe à l'eau et pourtant dieu sait que j'ai mis beaucoup d'ésperance , mais j'ai plus envie de m'en occuper , voila snifff
, la bonne nouvelle c'est que si quelqu'un veut le reprendre à ce stade ci il peut je donne la source de suite ici c'est sans média donc lançez le et sa marcheras , pour l'éditeur voir le sujet que j'avais poster voici la source avec un petit regret mais je veux continuer d'autre bon projet que j'ai en tête
Code : Tout sélectionner
;/*********************************************
;/* \\ Labyrinthus // *
;/* \\ crée par Garzul | 2004 // *
;/* \\JaPBe > 2.4.7.17 || Purebasic > 3.91 // *
;/*********************************************
;Ecran en 1024 * 768
#ScreenWidht = 1024
#ScreenHeight = 768
;Tableau pour les niveaux
Dim Map(24 ,17)
;Enumeration de constant
Enumeration
#Police
#Police2
#Police3
#Police4
#Police5
#Mur
#Capture
#Score
#Sol
EndEnumeration
;Initialisation des composant
InitSprite() : InitKeyboard() : InitMovie()
;Inclue le fichier math +
IncludeFile "Math+.pb"
;*######################################*#################*##############################################*
;/*--------------------------------------*\\* |Screen | *//*----------------------------------------------*
;*######################################*#################*##############################################*
If OpenScreen(#ScreenWidht,#ScreenHeight,32,"Labyrinthus") = 0
MessageRequester("Erreur","Directx7 impossible d'initialiser directx7",0 | #MB_IconError)
EndIf
;Déclaration des procédure
Declare Intro()
Declare ArrierePlan()
Declare Menus()
Declare DebutJeux()
Declare Jeux()
Declare Affichscore()
;/Variable global de tout le jeux
Global x , y , x2 , y2 , x3 , y3 , Police , Vt , AffichMenu , Police2 , x4 , y4 , AffichMenus , Police3 , Police4 , Angle , x5 , y5 , Rouge1 , Bleu1 , Vert1 , vitR , vitB , Touche , DebutJeux , AffichMenu1 , Affich3 , Police5 , Rouge2 , Vert2 , Bleu2 , Affich2 , Bleu3 , Rouge3 , Vert3 , Affich1 , Bleu4 , Rouge4 , Vert4 , Bleu5 , Rouge5 , Vert5 , sprite.f , Niveau1.l , angle2 , Affichjeux , Mury.l , Murx.l , a.l , Affichscore , Intro , AngleIntro , VitAngle , xintro , yintro , i , angleee
;Variable de départ
x = 0
y = 0
x2 = 0
y2 = 0
x3 = 0
y3 = 0
;Variable du titre
Vt = -80
;Variable de basculement de procédure
AffichMenu = 1
AffichMenus = 0
AffichMenu1 = 0
;Variable de menus
x4 = 170
Angle = 0
;Variable de selection des menus
x5 = 860
y5 = 160
;Couleur de sélection et mouvement
Rouge1 = 1
Bleu1 = 1
Vert1 = 0
vitR = 1
vitB = 1
Touche = 0
;Affichage du temps avant de commencer le jeux
Affich1 = 0
Affich3 = 0
Affich2 = 0
Affich0 = 0
Affichjeux = 0 ; Pour afficher la procedure de jeux
AffichInt = 1 ; Pour afficher l'intro
Intro = 1 ; Affiche l'intro au debut du jeux
AngleIntro = 0 ; Angle pour effet intro
VitAngle = 1 ; Vitesse de l'angle
;Affichage du texte de l'intro
xintro = 0
yintro = -25
i = 140
;Affichage pour les score
Affichscore = 0
;Police utiliser
Police = LoadFont(#Police ,"WST_Czec" ,60 ,#PB_Font_Italic)
Police2 = LoadFont(#Police2 ,"Modern" ,8 ,#PB_Font_Italic)
Police3 = LoadFont(#Police3 ,"Modern" ,40)
Police4 = LoadFont(#Police4 ,"Modern" ,20)
Police5 = LoadFont(#Police5 ,"Modern" ,250 ,#PB_Font_Italic)
;-Gestion des particule 3d
;Variable global des particule 3d
Global xmax.l , ymax.l , zmax.w , sspeed.w , zmin.w , num.w , centerx.w , centery.w , zoom.w , shade.w
xmax =100000
ymax =100000
zmax =2000
sspeed =-6
zmin =10
num =5000
centerx.w =#ScreenWidht/2
centery.w =#ScreenHeight/2
zoom.w =10
shade.w =0
Dim sx(num)
Dim sy(num)
Dim sz(num)
For i=0 To num
sx(i)=Random(xmax)- xmax/2
sy(i)=Random(ymax) - ymax/2
sz(i)=Random(zmax)
Next i
;-Tableau credits (intro)
Dim story.s(19)
story(0) = "LABYRINTHUS"
story(1) = "Codé par Garzul (c) 2004"
story(2) = "Version 1.0"
story(3) = "Merci aux créateurs du language que j'utilise"
story(4) = "Crée par Fred (Alpha SND) Laboureur"
story(5) = "Un grand merci à tous ceux qui m'ont soutenu et aidé"
story(6) = "En particuliers à la communauter Pure Basic"
story(7) = "Dobro , Marcus , Buckshot , Polux , Comtois , Oliv , Heis Spiter , Le soldat inconnu , Wizard Spike"
story(8) = "Et à tous ceux que j'ai pu oublié"
story(9) = "Ce jeu représente :"
story(10) = "... semaines de travail"
story(11) = "... ligne de codes"
story(12) = "... procedures"
story(13) = "20 niveaux"
story(14) = "... variables"
story(15) = "Pour en savoir plus sur le : "
story(16) = "Pure Basic"
story(17) = "Allez voir sur le site officiel"
story(18) = "http://www.purebasic.com"
story(19) = "Merci à vous"
;-Tableau score
Dim Score.s(8)
Score(1) = "Garzul 10000"
Score(2) = "Comtois 8000"
Score(3) = "Marcus 6000"
Score(4) = "Dobro 4000"
Score(5) = "Oliv 2000"
Score(6) = "Chris 1000"
Score(7) = "LSI 500"
Score(8) = "Nico 200"
;Création du sprite MUR
;-Sprite mur leve1
CreateSprite(#Mur,32,32)
StartDrawing(SpriteOutput(#Mur))
Box(0,0,32,32,RGB(228,128,128))
For i = 0 To 150
Line(Random(32),Random(32),2,10, RGB(150,30,30))
Next i
StopDrawing()
;Sprite Sol
CreateSprite(#Sol,32,32)
StartDrawing(SpriteOutput(#Sol))
Box(0,0,32,32,RGB($FA,$3D,$3D))
For i = 0 To 100
Plot(Random(32) , Random(32) , RGB($F9,$FF,$AE))
Next
StopDrawing()
;Procedure d'arrire plan du début :
Procedure ArrierePlan()
StartDrawing(ScreenOutput())
DrawingMode(1)
For i = 1 To 1024 Step 10
For e = 1 To 764 Step 10
Plot(x + i ,y + e ,RGB($19,$12,$E6))
Next
Next
For i = 1 To 1024 Step 20
For e = 1 To 764 Step 20
Plot(x2 + i ,y2 + e ,RGB($A5,$E3,$5A))
Next
Next
For i = 1 To 1024 Step 4
For e = 1 To 100 Step 4
Plot(x3 + i ,y3 + e ,RGB($2E,$28,$D1))
Next
Next
Vt + 1
;Test si Vt arrive a 15
If Vt > 15
Vt = 15
AffichMenu1 = 1
EndIf
DrawingFont(Police)
Locate(340, Vt)
FrontColor($6D,$D4,$92)
DrawText("Labyrinthus")
DrawingFont(Police2)
Locate(960, 750)
FrontColor($57,$A5,$A8)
DrawText("Garzul | 2004")
StopDrawing()
EndProcedure
;-MENUS
Procedure Menus()
;Examine keyboard pour initialiser la suite .
ExamineKeyboard()
x4 - 2
If x4 < 0
AffichMenus = 1
x4 = 0
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
For i = 860 To 1022 Step 2
For e = 100 To 650 Step 2
Box(x4 + i * gcos(x4) ,y4 + e * gcos(x4) ,1 ,1 ,RGB($02,$00,$FD))
Next
Next
If AffichMenu = 1
DrawingFont(Police3)
Locate(880, 95)
FrontColor($01,$00,$FE)
DrawText("Menus")
DrawingFont(Police4)
Locate(890 , 160)
FrontColor($FF,$00,$00)
DrawText("*>Jouer<*")
DrawingFont(Police4)
Locate(890 , 220)
FrontColor($FF,$00,$00)
DrawText("*>Score<*")
DrawingFont(Police4)
Locate(890 , 280)
FrontColor($FF,$00,$00)
DrawText("*>Credits<*")
DrawingFont(Police4)
Locate(890 , 340)
FrontColor($FF,$00,$00)
DrawText("*>Quitter<*")
;Création du cadre de selection des menus + Positionement de celui - ci
DrawingMode(4)
Box(x5 ,y5 ,162 ,30 ,RGB(Rouge1,Bleu1,Vert1))
If Rouge1 < 0
Rouge1 = 0 + 1
EndIf
If Bleu1 < 0
Bleu1 = 0 + 1
EndIf
;Création d'un petit dessin en bas de la barre de menus
For i = 860 To 1022 Step 1
For e = 430 To 650 Step 10
Box(x4 + i * gcos(y4) ,y4 + e * gcos(y4) ,1 ,1 ,RGB($79,$FF,$86))
Next
Next
;Création du test pour les touche.
If Touche = 0
If KeyboardPushed(#PB_Key_Return)
DebutJeux = 1
AffichMenu = 0
AffichMenu1 = 0
EndIf
If KeyboardReleased(#PB_Key_Down)
y5 = 220
Touche = 1
EndIf
EndIf
If Touche = 1
If KeyboardReleased(#PB_Key_Return)
Affichscore = 1
AffichMenu = 0
AffichMenu1 = 0
EndIf
If KeyboardReleased(#PB_Key_Down)
y5 = 280
Touche = 2
EndIf
EndIf
If Touche = 2
If KeyboardReleased(#PB_Key_Return)
Affichscore = 0
Intro = 1
AffichMenu = 0
AffichMenu1 = 0
EndIf
If KeyboardReleased(#PB_Key_Down)
y5 = 340
Touche = 3
EndIf
EndIf
;*---------------* /\ ********************** /\ *--------------------------------*
;***************** || Test dans l'autre sens || **********************************
;*---------------* \/ ********************** \/ *--------------------------------*
If Touche = 1
If KeyboardReleased(#PB_Key_Up)
y5 = 160
Touche = 0
EndIf
EndIf
If Touche = 2
If KeyboardReleased(#PB_Key_Up)
y5 = 220
Touche = 1
EndIf
EndIf
If Touche = 3
If KeyboardReleased(#PB_Key_Up)
y5 = 280
Touche = 2
EndIf
EndIf
;Quand on appui sur entrer on lance le programme citer.
; If KeyboardReleased(#PB_Key_Return) And Touche = 0 ;Jouer
; DebutJeux = 1
; AffichMenu = 0
; AffichMenu1 = 0
; EndIf
If KeyboardPushed(#PB_Key_Return) And Touche = 3 ;Fin
CloseScreen()
End
AffichMenu = 0
AffichMenu1 = 0
EndIf
EndIf
;Scintillement de la sélection
Rouge1 - vitR
Bleu1 - vitB
StopDrawing()
EndProcedure
;-Debut jeux
Procedure DebutJeux()
Affich3 = 1
Rouge2 + 7
Bleu2 + 7
; Test si la couleur arrive jusqu'a 255
If Rouge2 > 255
Rouge2 = 255
EndIf
If Bleu2 > 255
Bleu2 = 255
Vert2 + 7
EndIf
If Vert2 > 255
Vert2 = 255
Affich2 = 1
Affich3 = 0
Rouge3 + 7
Vert3 + 7
EndIf
If Rouge3 > 255
Rouge3 = 255
EndIf
If Vert3 > 255
Vert3 = 255
Bleu3 + 7
EndIf
If Bleu3 > 255
Bleu3 = 255
Affich2 = 0
Affich1 = 1
Bleu4 + 7
Vert4 + 7
EndIf
If Bleu4 > 255
Bleu4 = 255
EndIf
If Vert4 > 255
Vert4 = 255
Rouge4 + 7
EndIf
If Rouge4 > 255
Rouge4 = 255
Affich1 = 0
Affich0 = 1
Bleu5 + 7
Rouge5 + 7
Vert5 + 7
EndIf
If Bleu5 > 255 And Rouge5 > 255 And Vert5 > 255
Affichjeux = 1 ; apres le goo on lance le jeux :) et on efface le goo
Bleu5 = 255
Rouge5 = 255
Vert5 = 255
Affich0 = 0
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
Box(102 , 150 , 800 , 570 ,RGB($00,$00,$00))
If Affich3 = 1
DrawingFont(Police5)
Locate(350 , 260)
FrontColor(Rouge2,Vert2,Bleu2)
DrawText("3")
EndIf
If Affich2 = 1
DrawingFont(Police5)
Locate(350 , 260)
FrontColor(Rouge3,Vert3,Bleu3)
DrawText("2")
EndIf
If Affich1 = 1
DrawingFont(Police5)
Locate(350 , 260)
FrontColor(Rouge4,Vert4,Bleu4)
DrawText("1")
EndIf
If Affich1 = 1
DrawingFont(Police5)
Locate(350 , 260)
FrontColor(Rouge4,Vert4,Bleu4)
DrawText("1")
EndIf
If Affich0 = 1
For i = 0 To 5
DrawingFont(Police5)
Locate(200 + i, 260)
FrontColor(Rouge5,Vert5,Bleu5)
DrawText("Goo")
Next
EndIf
StopDrawing()
EndProcedure
;On peut jouer :)
;- JEUX (on joue) level 1
Procedure Jeux()
;Affiche la map
For V=0 To 17
For u=0 To 24
DisplaySprite(Map(u,V),1+u*32,138 + V*32)
Next u
Next V
OpenFile(0, "Niveaux\LabyNiv.map")
For y1 = 0 To 18 - 1
For x1 = 0 To 25 - 1
Map(x1, y1) = ReadLong()
Next x1
Next y1
CloseFile(0)
EndProcedure
;-Affichage des score
;Affichage des score
Procedure Affichscore()
If KeyboardReleased(#PB_Key_Return)
Affichscore = 0
AffichMenu = 1
AffichMenu1 = 1
angleee = 0
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
Box(102 , 150 , 800 , 570 ,RGB($00,$00,$00))
Line(105,250,805,0,RGB($25,$3F,$F1))
For i = 0 To 200
Line(175,250,i * Cos(i) + Sqr(i),i * Sin(i) - Sqr(i),RGB($E4,$E9,$2E))
Line(820,250,i * Cos(i) + Sqr(i),i * Sin(i) - Sqr(i),RGB($E4,$E9,$2E))
Next i
For i = 0 To 200 Step 2
Box(angleee * Cos(i) * Sin(angleee) + Sqr(i),angleee * Sin(i) * Cos(angleee) - Sqr(i),2,2,RGB($3A,$DC,$D8))
Box(angleee * Cos(angleee) + Sqr(i),angleee * Sin(angleee) - Sqr(i),2,2,RGB($FA,$1D,$22))
Next i
DrawingFont(Police3)
Locate(440,180)
DrawingMode(1)
FrontColor(100,0,255)
DrawText("SCORE")
DrawingFont(Police1)
FrontColor(100 , 255 , 255)
For s = 0 To 8
Locate(375, (225 + 50 * s))
DrawText(Score(s))
Next
DrawingFont(Police2)
Locate(3, 750)
FrontColor($57,$A5,$A8)
DrawText("Tous les effets de ce jeux ont étais coder par garzul")
Locate(905,150)
;DrawText("Herbe")
Locate(890,200)
;DrawText("Pointeur")
StopDrawing()
angleee + 1
EndProcedure
;-Affichage de l'intro au debut
Procedure Intro()
If KeyboardPushed(#PB_Key_Return) And Intro = 1
Intro = 0
AffichInt = 0
AffichMenu = 1
;On réinitialise tout pour apres
AngleIntro = 0
xintro = 0
yintro = 0
Vt = -80
x4 = 170
Angle = 0
zmax = 5550
EndIf
;Incrémentation pour l'angle
AngleIntro + VitAngle
;Variable de la vitesse du texte
yintro + 1
;Test si AngleIntro arrive au bord gauche si il y arrive il decremente de 1
If AngleIntro > 100
For i = 0 To 1
VitAngle = 0 - i
Next
ElseIf AngleIntro < 0
For i = 0 To 1
VitAngle = 0 + i
Next
EndIf
;Création si le texte arrive a zero lancer le jeux
If yintro > 1700
Intro = 0
AffichInt = 0
AffichMenu = 1
;On reinitialise tout pour apres
AngleIntro = 0
xintro = 0
yintro = 0
Vt = -80
x4 = 170
Angle = 0
zmax = 2000
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
;On crée l'effet de particule
;-Particule 3D
For i=0 To num
sz(i)=sz(i) + sspeed
If sz(i)<=zmin
sz(i)=zmax
sx(i)=Random(xmax)-xmax/2
sy(i)=Random(ymax)-ymax/2
EndIf
screenx.w=(sx(i)* zoom) / sz(i) + centerx
screeny.w=(-sy(i)* zoom)/ sz(i) + centery
shade=Int(255/zmax* -sz(i))
If screenx < #ScreenWidht
If screeny < #ScreenHeight
If screenx > 0
If screeny > 0
Plot(screenx,screeny,RGB(shade,shade,shade))
Plot(screenx+1,screeny,RGB(shade,shade,shade))
Plot(screenx-1,screeny,RGB(shade,shade,shade))
Plot(screenx,screeny+1,RGB(shade,shade,shade))
Plot(screenx,screeny-1,RGB(shade,shade,shade))
EndIf
EndIf
EndIf
EndIf
Next i
zmax + 4
If zmax > 5000
zmax - 4
EndIf
If zmax < 1500
zmax + 6
EndIf
DrawingFont(Police4)
FrontColor(0,255,0)
;Affichage du texte defilant de haut en bas
For s = 0 To 18
;Affichage du texte en decaler vers la gauche de plus en + vite
Locate(xintro, (yintro - 50 * s))
DrawText(story(s))
Next
StopDrawing()
EndProcedure
;*______________________________________*__**__*__**__*__**__*___________________________________________*
;/**************************************** //\\ BOUCLE //\\ *********************************************
;/**************************************** \\//*||**||*\\// *********************************************
;*______________________________________*__**__*__**__*__**__*___________________________________________*
Repeat
ClearScreen(Rouge,Vert,Bleu)
;Procedure :
If Intro = 0
ArrierePlan()
EndIf
If AffichMenu = 1 And AffichMenu1 = 1 And Intro = 0
Menus()
EndIf
If DebutJeux = 1 And AffichMenu1 = 1 And AffichMenu = 0 And Intro = 0
DebutJeux()
EndIf
If Affichjeux = 1 And Intro = 0
Jeux()
EndIf
If Affichscore = 1
Affichscore()
EndIf
If Intro = 1
Intro()
EndIf
FlipBuffers()
;Fin du programme
ExamineKeyboard()
;Creation d'un capture d'ecran si on appui sur r
If KeyboardPushed(#PB_Key_S)
GrabSprite(500,0,0,1024,768)
SaveSprite(500,"screengame.bmp")
EndIf
Until KeyboardPushed(#PB_Key_Escape)
End
j'espere que sa pourra aider certain débutant , c'est du 100 % Garzul alors c'est peut - êtres mal fait mais bon voila je me consacre à de meilleur projet maintenant vous pouvez en faire ce que vous voulez même le terminer il reste juste à placer les map quand on va sur jouer puis à placer le jouer et à faire jouer le joueur voila le code est donner
. ( Regarder les effet quand on va sur score
) .