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()  





 (la Gif)
 (la Gif)





