J'ai fait ce jeu sous blitz3d j'ai juste les codes j'ai pas pu les mettres en format .exe car mon blitz 3D est une version demo.
voilà je souhaite plus tard mettre un mod réseau une intelligence artificielle pour jouer seul.
Source / Exemple :
; JackerBomber
Const BORD_GAUCHE = 13
Const BORD_HAUT = 7
Const BORD_DROIT=660
Const BORD_BAS = 580
Const NB_CASESX = 11
Const NB_CASESY = 9
Const NB_CAISSES=30
Const PROBA_BONUS = 2
Const CSTE_VITESSE = 5
Const TIMER_BOMBE = 600
; Définition d'un type pour les murs
Type TypeMurBrique
Field x,y,etat
End Type
; Définition d'un type pour les maisons
; (pour savoir quelle couleur copier)
Type TypeMaison
Field x,y,couleur
End Type
Type TypeJoueur
Field x,y,etat,sens
Field image
Field vitesse
Field nbBombes
Field bombes
Field bombetimer
Field puissance
Field score
Field mort
Field heure_mort
End Type
Type TypeBombe
Field active#
Field puissance
Field heure
Field numjoueur
End Type
Type TypeCase
Field etat
Field heure
End Type
; Variable des murs
Dim MurBrique.TypeMurBrique(19)
; Variable des toits de maisons
Dim Maison.TypeMaison(19)
; Variables joueurs
Dim Joueur.TypeJoueur(3)
Dim gfxJoueurBas(3,5)
Dim gfxJoueurHaut(3,5)
Dim gfxJoueurGauche(3,5)
Dim gfxJoueurDroite(3,5)
Dim Bombe.TypeBombe(NB_CASESX-1,NB_CASESY-1)
Dim Cases.TypeCase(NB_CASESX-1,NB_CASESY-1)
Dim MaisonB(NB_CASESX-1,NB_CASESY-1)
Dim Caisse(NB_CASESX-1,NB_CASESY-1)
Dim Bonus(NB_CASESX-1,NB_CASESY-1)
; Variables images
Global gfxFond,gfxMaisonToit1,gfxMaisonToit2,gfxMaisonToit3
Global gfxCaisse
Global sndExplosion
Global Fin=0
Dim gfxBombe(2)
Dim gfxBonus(2)
Dim gfxInit(1)
Dim gfxExplosionX(3)
Dim gfxExplosionV(3)
Dim gfxExplosionH(3)
Dim gfxExplosionFH(3)
Dim gfxExplosionFB(3)
Dim gfxExplosionFG(3)
Dim gfxExplosionFD(3)
Dim gfxMort(4)
; Mode d'affichage : 800 x 600
Graphics 800,600,16
ChargementSprites()
Introduction()
;NouvellePartie()
End
Function Affichage()
Local i,j,k=0
Local b=0
; On dessine sur le backbuffer
SetBuffer BackBuffer()
Cls()
; On réaffiche le fond
DrawImage gfxFond,0,0
For i =0 To NB_CASESX-1
For j=0 To NB_CASESY-1
; Affichage des bombes
If Bombe(i,j)\active>0 Then
b=Bombe(i,j)\active
If b<1 Then b=1
If b>3 Then b=3
DrawImage gfxBombe(b-1),i*64+BORD_GAUCHE,j*64+BORD_HAUT
EndIf
; Affichage des caisses
If Caisse(i,j)=1 Then
DrawImage gfxCaisse,i*64+BORD_GAUCHE,j*64+BORD_HAUT
EndIf
; Affichage des bonus
If Bonus(i,j)>0 And Caisse(i,j)=0 Then
DrawImage gfxBonus(Bonus(i,j)-1),i*64+BORD_GAUCHE,j*64+BORD_HAUT
EndIf
; Affichage des explosions
k = Cases(i,j)\etat
If k>0 Then
DrawImage gfxExplosionX(k-1),i*64+BORD_GAUCHE,j*64+BORD_HAUT
EndIf
Next
Next
; Affichage des personnages
For k= 0 To 3
i=Joueur(k)\x
j=Joueur(k)\y
If Joueur(k)\mort=0 Then
DrawImage Joueur(k)\image,i,j
Else
If Joueur(k)\mort<5 Then
DrawImage gfxMort(Joueur(k)\mort),i,j
EndIf
EndIf
Next
; Enfin, on dessine le toit des maisons
For k=0 To 19
i=Maison(k)\x
j=Maison(k)\y
Select Maison(k)\couleur
Case 1
DrawImage gfxMaisonToit1,i*128+77,j*128+13
Case 2
DrawImage gfxMaisonToit2,i*128+77,j*128+13
Case 3
DrawImage gfxMaisonToit3,i*128+77,j*128+13
End Select
Next
; Affichage du score
Text 755,145,Str(Joueur(0)\score),True,False
Text 755,275,Str(Joueur(1)\score),True,False
Text 755,400,Str(Joueur(2)\score),True,False
Text 755,525,Str(Joueur(3)\score),True,False
Flip
End Function
Function ChargementSprites()
Local i
; Chargement des caisses
gfxCaisse=LoadImage("SpritesRoute/bomber-caisse.bmp")
; Chargement des bombes
For i=0 To 2
s$="SpritesBombes/bomber-bombe0" + Str(i+1) + ".bmp"
gfxBombe(i) = LoadImage(s$)
MaskImage gfxBombe(i) ,24,255,0
Next
; Chargement des morts
For i=0 To 4
s$="SpritesMort/Mort0" + Str(i+1) + ".bmp"
gfxMort(i) = LoadImage(s$)
MaskImage gfxMort(i) ,24,255,0
Next
; Chargement des bonus
gfxBonus(0) = LoadImage("SpritesBonus/BonusVitesse.bmp")
MaskImage gfxBonus(0) ,24,255,0
gfxBonus(1) = LoadImage("SpritesBonus/BonusPuissance.bmp")
MaskImage gfxBonus(1) ,24,255,0
gfxBonus(2) = LoadImage("SpritesBonus/BonusBombe.bmp")
MaskImage gfxBonus(2) ,24,255,0
; Chargement des images d'initialisation
For i=0 To 1
s$="SpritesDivers/bomber-init0" + Str(i+1) + ".bmp"
gfxInit(i) = LoadImage(s$)
MaskImage gfxInit(i) ,24,255,0
Next
; Chargement des images d'explosion
For i=0 To 3
s$="SpritesExplosion/ExplosionX" + Str(i+1) + ".bmp"
gfxExplosionX(i) = LoadImage(s$)
MaskImage gfxExplosionX(i) ,24,255,0
Next
For i=0 To 3
Joueur(i) = New TypeJoueur
Joueur(i)\score=0
Next
; Chargement de l'explosion
sndExplosion = LoadSound("Sons/Explosion.wav")
End Function
Function ConstructionFondFixe()
Local i,j,k,cpt
Local s$
; Variable du mur
Local gfxMaison1,gfxMaison2,gfxMaison3
Local gfxRouteHG,gfxRouteBG,gfxRouteHD,gfxRouteBD,gfxRouteH,gfxRouteV,gfxRouteCroisement
Local gfxRoute
; Chargement de l'image de fond
gfxFond=LoadImage("SpritesDivers/bomber-fond.bmp")
; Chargement des maisons
gfxMaison1=LoadImage("SpritesMaison/bomber-maisonD1.bmp")
gfxMaison2=LoadImage("SpritesMaison/bomber-maisonD2.bmp")
gfxMaison3=LoadImage("SpritesMaison/bomber-maisonD3.bmp")
gfxMaisonToit1=LoadImage("SpritesMaison/bomber-maisonH1.bmp")
gfxMaisonToit2=LoadImage("SpritesMaison/bomber-maisonH2.bmp")
gfxMaisonToit3=LoadImage("SpritesMaison/bomber-maisonH3.bmp")
MaskImage gfxMaisonToit1,24,255,0
MaskImage gfxMaisonToit2,24,255,0
MaskImage gfxMaisonToit3,24,255,0
; Chargement de la route
gfxRouteHG=LoadImage("SpritesRoute/bomber-routeHG.bmp")
gfxRouteBG=LoadImage("SpritesRoute/bomber-routeBG.bmp")
gfxRouteHD=LoadImage("SpritesRoute/bomber-routeHD.bmp")
gfxRouteBD=LoadImage("SpritesRoute/bomber-routeBD.bmp")
gfxRouteH=LoadImage("SpritesRoute/bomber-routeH.bmp")
gfxRouteV=LoadImage("SpritesRoute/bomber-routeV.bmp")
gfxRouteCroisement=LoadImage("SpritesRoute/bomber-routeCroisement.bmp")
SeedRnd MilliSecs()
SetBuffer ImageBuffer(gfxFond)
; Dessin des routes
For i=0 To 5
For j=0 To 3
DrawImage gfxRouteV,i*128+13,j*128+77
Next
Next
For i=0 To 4
For j=0 To 4
DrawImage gfxRouteH,i*128+77,j*128+13
Next
Next
For i=0 To 5
For j=0 To 4
DrawImage gfxRouteCroisement,i*128+13,j*128+13
Next
Next
DrawImage gfxRouteHG,13,13
DrawImage gfxRouteBG,13,525
DrawImage gfxRouteHD,653,13
DrawImage gfxRouteBD,653,525
; Ensuite, on dessine les murs inamovibles
cpt=0
Dim Maison(19)
For i=0 To 4
For j=0 To 3
k=Rnd(1,3)
Select k
Case 1
DrawImage gfxMaison1,i*128+77,j*128+77
Case 2
DrawImage gfxMaison2,i*128+77,j*128+77
Case 3
DrawImage gfxMaison3,i*128+77,j*128+77
End Select
Maison(cpt) = New TypeMaison
Maison(cpt)\x = i
Maison(cpt)\y = j
Maison(cpt)\couleur = k
cpt=cpt+1
Next
Next
End Function
Function InitNouvellePartie()
Local i,j,k,l
Local s$
Local total
For i=0 To 3
If i=0 Then
Joueur(i)\x=0
Joueur(i)\y=0
ElseIf i=1 Then
Joueur(i)\x=64 * (NB_CASESX-1) + BORD_GAUCHE
Joueur(i)\y=64 * (NB_CASESY-1) + BORD_HAUT
ElseIf i=2 Then
Joueur(i)\x=64 * (NB_CASESX-1)+ BORD_GAUCHE
Joueur(i)\y=0
Else
Joueur(i)\x=0
Joueur(i)\y=64 * (NB_CASESY-1) + BORD_HAUT
EndIf
Joueur(i)\etat = 0
Joueur(i)\vitesse = CSTE_VITESSE
Joueur(i)\nbBombes = 1
Joueur(i)\puissance = 1
Joueur(i)\mort = 0
For k=1 To 6
j=i+1
s$= "SpritesPlayers/Player" + Str(j) + "B" + Str(k) + ".bmp"
gfxJoueurBas(i,k-1) = LoadImage(s$)
MaskImage gfxJoueurBas(i,k-1),24,255,0
Next
For k=1 To 6
j=i+1
s$= "SpritesPlayers/Player" + Str(j) + "H" + Str(k) + ".bmp"
gfxJoueurHaut(i,k-1) = LoadImage(s$)
MaskImage gfxJoueurHaut(i,k-1),24,255,0
Next
For k=1 To 6
j=i+1
s$= "SpritesPlayers/Player" + Str(j) + "D" + Str(k) + ".bmp"
gfxJoueurDroite(i,k-1) = LoadImage(s$)
MaskImage gfxJoueurDroite(i,k-1),24,255,0
Next
For k=1 To 6
j=i+1
s$= "SpritesPlayers/Player" + Str(j) + "G" + Str(k) + ".bmp"
gfxJoueurGauche(i,k-1) = LoadImage(s$)
MaskImage gfxJoueurGauche(i,k-1),24,255,0
Next
Joueur(i)\image = gfxJoueurBas(i,5)
Next
For i=0 To 10
For j=0 To 8
MaisonB(i,j)=1
Next
Next
For i=0 To 10
MaisonB(i,0)=0
MaisonB(i,2)=0
MaisonB(i,4)=0
MaisonB(i,6)=0
MaisonB(i,8)=0
Next
For i=0 To 8
MaisonB(0,i)=0
MaisonB(2,i)=0
MaisonB(4,i)=0
MaisonB(6,i)=0
MaisonB(8,i)=0
MaisonB(10,i)=0
Next
For i=0 To NB_CASESX-1
For j=0 To NB_CASESY-1
Bombe(i,j) = New TypeBombe
Bombe(i,j)\active=0
Bombe(i,j)\puissance=1
Cases(i,j) = New TypeCase
Cases(i,j)\etat=0
Caisse(i,j) =0
Bonus(i,j) =0
Next
Next
total=0
SeedRnd MilliSecs()
While total<NB_CAISSES
i=Rnd(0,NB_CASESX-1)
j=Rnd(0,NB_CASESY-1)
If MaisonB(i,j)=0 And Caisse(i,j)=0 Then
If Not ( i=NB_CASESX-1 And j=NB_CASESY-1) Then
If Not(i=NB_CASESX-1 And j=0) Then
If Not (i=0 And j=NB_CASESY-1 ) Then
If Not (i=0 And j=0) Then
Caisse(i,j)=1
total=total+1
l = Rnd(1,PROBA_BONUS)
If l=PROBA_BONUS Then
k=Rnd(1,3)
Bonus(i,j) = k
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
Wend
End Function
Function Deplacement(player,sens)
Local i,s
Local v
Local xx,yy
If Joueur(player)\mort<>0 Then Return
; Pas du déplacement
v = Joueur(player)\Vitesse
; Ancien sens du déplacement
s = Joueur(player)\Sens
; Image utilisée
i = Joueur(player)\etat
Select sens
Case 1
;Haut
xx = (Joueur(player)\x+32-v-BORD_GAUCHE) / 64
If xx<0 Then xx=0
yy = (Joueur(player)\y-BORD_HAUT) / 64
If yy<0 Then yy=0
If yy>NB_CASESY-1 Then yy=NB_CASESY-1
If Joueur(player)\y-v+10>BORD_HAUT And Bombe(xx,yy)\active<1 And MaisonB(xx,yy)=0 And Caisse(xx,yy)=0 Then
Joueur(player)\y = Joueur(player)\y -v
AjouteBonus(xx,yy,player)
EndIf
If s=1 Then
i = i+1
If i=6 Then i=0
Else
s=1
i=0
EndIf
Joueur(player)\image = gfxJoueurHaut(player,i)
Case 2
;Bas
xx = (Joueur(player)\x+32-v-BORD_GAUCHE) / 64
If xx<0 Then xx=0
yy = (Joueur(player)\y+64-BORD_HAUT) / 64
If yy<0 Then yy=0
If yy>NB_CASESY-1 Then yy=NB_CASESY-1
If Joueur(player)\y+v+64<BORD_BAS And Bombe(xx,yy)\active<1 And MaisonB(xx,yy)=0 And Caisse(xx,yy)=0 Then
Joueur(player)\y = Joueur(player)\y+v
AjouteBonus(xx,yy,player)
EndIf
If s=2 Then
i = (i+1) Mod 6
Else
s=2
i=0
EndIf
Joueur(player)\image = gfxJoueurBas(player,i)
Case 3
;Gauche
xx = (Joueur(player)\x+10-v-BORD_GAUCHE) / 64
If xx<0 Then xx=0
yy = (Joueur(player)\y+64-BORD_HAUT) / 64
If yy<0 Then yy=0
If yy>NB_CASESY-1 Then yy=NB_CASESY-1
If Joueur(player)\x-v>BORD_GAUCHE And Bombe(xx,yy)\active<1 And MaisonB(xx,yy)=0 And Caisse(xx,yy)=0 Then
Joueur(player)\x = Joueur(player)\x -v
AjouteBonus(xx,yy,player)
EndIf
If s=3 Then
i = (i+1) Mod 6
Else
s=3
i=0
EndIf
Joueur(player)\image = gfxJoueurGauche(player,i)
Case 4
; Droite
xx = (Joueur(player)\x+54-v-BORD_GAUCHE) / 64
If xx<0 Then xx=0
yy = (Joueur(player)\y+64-BORD_HAUT) / 64
If yy<0 Then yy=0
If yy>NB_CASESY-1 Then yy=NB_CASESY-1
If Joueur(player)\x+v<BORD_DROIT And Bombe(xx,yy)\active<1 And MaisonB(xx,yy)=0 And Caisse(xx,yy)=0 Then
Joueur(player)\x = Joueur(player)\x + v
AjouteBonus(xx,yy,player)
EndIf
If s=4 Then
i = (i+1) Mod 6
Else
s=4
i=0
EndIf
Joueur(player)\image = gfxJoueurDroite(player,i)
End Select
; On change l'image
Joueur(player)\sens=s
Joueur(player)\etat=i
TestMort()
End Function
Function PoserBombe(player)
Local xx,yy
If Joueur(player)\mort<>0 Then Return
xx = (Joueur(player)\x+32-BORD_GAUCHE) / 64
If xx<0 Then xx=0
yy = (Joueur(player)\y+32-BORD_HAUT) / 64
If yy<0 Then yy=0
If Joueur(player)\bombes+1<=Joueur(player)\nbBombes And Bombe(xx,yy)\active=0 And MilliSecs()>Joueur(player)\bombetimer+500 Then
Joueur(player)\bombes = Joueur(player)\bombes +1
Bombe(xx,yy)\active = 0.5
Bombe(xx,yy)\puissance = Joueur(player)\puissance
Bombe(xx,yy)\heure = MilliSecs()
Bombe(xx,yy)\numjoueur = player
Joueur(player)\bombetimer = MilliSecs()
EndIf
End Function
Function Explosion()
Local i,j
Local k,l
Local p
For i=0 To NB_CASESX-1
For j=0 To NB_CASESY-1
If Bombe(i,j)\active>0 Then
; On active celle qui viennent d'être posées
If Bombe(i,j)\active = 0.5 And MilliSecs()-Bombe(i,j)\heure>600 Then
Bombe(i,j)\heure = Bombe(i,j)\heure +600
Bombe(i,j)\active=1
Else
; On augmente le timer des bombes
If MilliSecs()-Bombe(i,j)\heure>TIMER_BOMBE Then
Bombe(i,j)\heure = Bombe(i,j)\heure +TIMER_BOMBE
Bombe(i,j)\active = Bombe(i,j)\active + 1
EndIf
; 3 secondes : explosion !!
If Bombe(i,j)\active >= 3 Then
p = Bombe(i,j)\puissance
For k=i-p To i+p
l=j
If k>=0 And l>=0 And k<=NB_CASESX-1 And l<=NB_CASESY-1 Then
If MaisonB(k,l)=0 Then
Cases(k,l)\etat = 1
Cases(k,l)\heure = MilliSecs()
Bombe(i,j)\active =0
If Caisse(k,l)=1 Then
Caisse(k,l)=0
Else
If Bonus(k,l)>0 Then Bonus(k,l)=0
EndIf
If Bombe(k,l)\active>0 Then ExplosionForcee(i,j)
EndIf
EndIf
Next
For l=j-p To j+p
k=i
If k>=0 And l>=0 And k<=NB_CASESX-1 And l<=NB_CASESY-1 Then
If MaisonB(k,l)=0 Then
Cases(k,l)\etat = 1
Cases(k,l)\heure = MilliSecs()
Bombe(i,j)\active =0
If Caisse(k,l)=1 Then
Caisse(k,l)=0
Else
If Bonus(k,l)>0 Then Bonus(k,l)=0
EndIf
If Bombe(k,l)\active>0 Then ExplosionForcee(k,l)
EndIf
EndIf
Next
Bombe(i,j)\active =0
Joueur(Bombe(i,j)\numjoueur)\bombes=Joueur(Bombe(i,j)\numjoueur)\bombes-1
PlaySound sndExplosion
EndIf
EndIf
EndIf
Next
Next
End Function
Function ExplosionForcee(i,j)
Local p,k,l
p = Bombe(i,j)\puissance
For k=i-p To i+p
l=j
If k>=0 And l>=0 And k<=NB_CASESX-1 And l<=NB_CASESY-1 Then
If MaisonB(k,l)=0 Then
Cases(k,l)\etat = 1
Cases(k,l)\heure = MilliSecs()
If Caisse(k,l)=1 Then
Caisse(k,l)=0
Else
If Bonus(k,l)>0 Then Bonus(k,l)=0
EndIf
Bombe(i,j)\active =0
If Bombe(k,l)\active>0 Then ExplosionForcee(k,l)
EndIf
EndIf
Next
For l=j-p To j+p
k=i
If k>=0 And l>=0 And k<=NB_CASESX-1 And l<=NB_CASESY-1 Then
If MaisonB(k,l)=0 Then
Cases(k,l)\etat = 1
Cases(k,l)\heure = MilliSecs()
If Caisse(k,l)=1 Then
Caisse(k,l)=0
Else
If Bonus(k,l)>0 Then Bonus(k,l)=0
EndIf
Bombe(i,j)\active =0
If Bombe(k,l)\active>0 Then ExplosionForcee(k,l)
EndIf
EndIf
Next
Bombe(i,j)\active =0
Joueur(Bombe(i,j)\numjoueur)\bombes=Joueur(Bombe(i,j)\numjoueur)\bombes-1
PlaySound sndExplosion
End Function
Function FinExplosion()
Local i,j
For i=0 To NB_CASESX-1
For j=0 To NB_CASESY-1
If Cases(i,j)\etat = 3 And MilliSecs()-Cases(i,j)\heure>TIMER_BOMBE Then
Cases(i,j)\etat = 0
Else
If Cases(i,j)\etat>0 And cases(i,j)\etat<3 Then
; On augmente le timer des bombes
If MilliSecs()-Cases(i,j)\heure>TIMER_BOMBE Then
Cases(i,j)\heure = Cases(i,j)\heure +TIMER_BOMBE
Cases(i,j)\etat = Cases(i,j)\etat + 1
EndIf
EndIf
EndIf
Next
Next
End Function
Function NouvellePartie()
Local i
Fin=0
InitNouvellePartie()
; On initialise le programme en construisant
; le fond fixe
ConstructionFondFixe()
; Passage en double buffering
SetBuffer BackBuffer()
; On dessine l'image de fond sur le buffer
FlushKeys()
Affichage()
DrawImage gfxInit(0),300,300
; Ensuite, on bascule le backbuffer en frontbuffer
; et on efface le backbuffer
Flip
WaitKey()
SetBuffer BackBuffer()
Affichage()
DrawImage gfxInit(1),300,300
Flip
WaitKey()
BouclePrincipale()
If Fin<100 Then
NouvellePartie()
Else
Introduction()
EndIf
End Function
Function AjouteBonus(i,j,p)
Local k
If Bonus(i,j)>0 Then
k = Bonus(i,j)
Select k
Case 1 ; Vitesse
If Joueur(p)\vitesse<15 Then
Joueur(p)\vitesse = Joueur(p)\vitesse+3
EndIf
Case 2 ; Puissance
If Joueur(p)\puissance<6 Then
Joueur(p)\puissance= Joueur(p)\puissance+1
EndIf
Case 3 ; Bombe
Joueur(p)\nbBombes=Joueur(p)\nbBombes+1
End Select
Bonus(i,j)=0
EndIf
End Function
Function TestMort()
Local casex,casey
Local i
For i=0 To 3
If Joueur(i)\mort=0 Then
casex= (Joueur(i)\x-BORD_GAUCHE) / 64
If casex<0 Then casex=0
casey= (Joueur(i)\y-BORD_HAUT) / 64
If casey<0 Then casey=0
If Cases(casex,casey)\etat<>0 Then
Joueur(i)\mort = 1
Joueur(i)\heure_mort = MilliSecs()
EndIf
Else
If Joueur(i)\mort = 4 And MilliSecs()-Joueur(i)\heure_mort>TIMER_BOMBE Then
Joueur(i)\mort = 5
Else
If Joueur(i)\mort>0 And Joueur(i)\mort<4 Then
; On augmente le timer des bombes
If MilliSecs()-Joueur(i)\heure_mort>TIMER_BOMBE Then
Joueur(i)\heure_mort = Joueur(i)\heure_mort +TIMER_BOMBE
Joueur(i)\mort = Joueur(i)\mort + 1
EndIf
EndIf
EndIf
EndIf
Next
End Function
Function TestFin()
Local i,k,jg
k=0
For i=0 To 3
If Joueur(i)\mort=0 Then
k=k+1
jg=i
EndIf
Next
f=0
If k=1 Then
Fin=1
Joueur(jg)\score=Joueur(jg)\score+1
ElseIf k=0
Fin=1
EndIf
End Function
Function BouclePrincipale()
; Boucle principale
While Fin=0
; Touche ESC : on quitte
If KeyHit(1) Then Fin=100
; JOUEUR 1
; Haut
If KeyDown(200) Then Deplacement(0,1)
; Bas
If KeyDown(208) Then Deplacement(0,2)
; Gauche
If KeyDown(203) Then Deplacement(0,3)
; Droite
If KeyDown(205) Then Deplacement(0,4)
; Enter
If KeyDown(28) Then PoserBombe(0)
; JOUEUR 2
; Z
If KeyDown(17) Then Deplacement(1,1)
; Q
If KeyDown(30) Then Deplacement(1,3)
; S
If KeyDown(31) Then Deplacement(1,2)
; D
If KeyDown(32) Then Deplacement(1,4)
; A
If KeyDown(16) Then PoserBombe(1)
; JOUEUR 3
; I
If KeyDown(23) Then Deplacement(2,1)
; K
If KeyDown(37) Then Deplacement(2,2)
; J
If KeyDown(36) Then Deplacement(2,3)
; L
If KeyDown(38) Then Deplacement(2,4)
; U
If KeyDown(22) Then PoserBombe(2)
Explosion()
TestMort()
Affichage()
TestFin()
FinExplosion()
Wend
End Function
Function Introduction()
Local fntArial
Local fntArial18
Local sortie=0
fntArial = LoadFont("Arial",24,False,False,False)
fntArial18 = LoadFont("Arial",18,False,False,False)
SetBuffer BackBuffer()
Cls()
SetFont fntArial
Text 400,50,"JackerBomb",True,False
Text 400,100,"Instructions pour le jeu",True,False
SetFont fntArial18
Text 50,160,"- Appuyez sur Espace pour commencer la partie"
Text 50,180,"- Joueur 1 : Flèches pour se déplacer, Entrée pour poser une bombe"
Text 50,200,"- Joueur 2 : z,q,s,d pour se déplacer, a pour poser une bombe"
Text 50,220,"- Joueur 3 : i,j,k,l pour se déplacer, u pour poser une bombe"
Text 50,240,"- Joueur 4 : Joystick pour se déplacer, Feu pour poser une bombe"
Flip
While sortie=0
If KeyHit(1) Then sortie=2
If KeyHit(57) Then sortie=1
Wend
If sortie=1 Then
NouvellePartie()
Else
End
EndIf
End Function
Conclusion :
voilà j'ai mis les images en zip qui son necessairent pour jouer car il n'est pas en exe.
vous ne pouvez joueur pour l'instant que si vous avez blitz 3d vous pouvez télécharger la démo.Si vous l'avez mettez mon fichier en exe et mettez sur un petit site pour que l'on le conaisse. merci
JE VAIS METTRE LE ZIP DANS PEUT DE TEMPS !!!!!!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.