sans refaire tout mon code qui est surement plein de truc bizards
je vous remerci d'avance
Code : Tout sélectionner
InitSprite():InitSprite3D():InitKeyboard():InitMouse() :InitSound()
Enumeration
#explosion
#explosion3d
#explos1
#galax
#vaisseau
#fond
#tir1
#feu
#aster1
EndEnumeration
Global posxtir,posytir,tirjoueur,t=0,t1=0,asterx,astery=-100,score,scrolling=0,asteroide
OpenScreen(800,600,32,"ecranjeu")
LoadSprite(#galax,"c:\space\gala1.bmp")
LoadSprite(#aster1,"c:\space\aster1.bmp")
TransparentSpriteColor(#aster1,$ffffff)
LoadSprite(#vaisseau,"c:\space\vaisseau.bmp",0);charge le dessin
TransparentSpriteColor(#vaisseau,$ffffff)
LoadSprite(#tir1,"c:\space\tir1.bmp",0)
LoadSprite(#explosion,"c:\space\explosion.bmp",#PB_Sprite_Texture )
TransparentSpriteColor(#explosion,$ffffff)
CreateSprite3D(#explosion3d,#explosion)
TransparentSpriteColor(#tir1,$ffffff)
MouseLocate(385,520)
LoadSound(#explos1,"c:\space\explos1.wav")
Declare explosionaster1()
Declare coltirast()
;*********************************
Structure tirjoueur
posxtir.l
posytir.l
EndStructure
Global NewList position.tirjoueur()
;*********************************
Structure asteroide
asterx.l
astery.l
vitesse.l
EndStructure
Global NewList coord.asteroide()
;********************************
;******************************
Procedure gestiontir()
Select KeyboardReleased(#PB_Key_Space)
Case 0
t=1
Case 1
t=0
EndSelect
If t=1:Goto freintir:EndIf
If t=0
InsertElement(position())
position()\posxtir=MouseX()+13
position()\posytir=MouseY()
EndIf
t=1
freintir:
While NextElement(position())
position()\posytir-5
DisplayTransparentSprite(#tir1,position()\posxtir,position()\posytir)
If position()\posytir<=0:t=0
EndIf
coltirast()
Wend
t=0
ResetList(position())
EndProcedure
;***********************************
Procedure afficheaster()
InsertElement(coord())
If t1=1:Goto freinaster1:EndIf
If t1=0:coord()\asterx=Random(740):EndIf
t1=1
freinaster1:
While NextElement(coord())
t1=1
coord()\astery+5
DisplayTransparentSprite(#aster1,coord()\asterx,coord()\astery)
If coord()\astery>600:t1=0:coord()\astery=-100
DeleteElement(coord())
EndIf
Wend
t1=0
EndProcedure
;************************************
Procedure coltirast()
If SpritePixelCollision(#tir1,position()\posxtir,position()\posytir,#aster1,coord()\asterx,coord()\astery)
explosionaster1()
DeleteElement(coord()):t1=0
DeleteElement(position()):
t=0
EndIf
EndProcedure
;************************************
Procedure explosionaster1()
PlaySound(#explos1)
Start3D()
For i=0 To 50000
DisplaySprite3D(#explosion3d ,coord()\asterx,coord()\astery,255)
Next i
Stop3D()