Page 1 sur 1

premier pas en pb resolu

Publié : dim. 09/déc./2007 20:40
par geantvert
bonsoir novice complet en programmation
j,ai du mal a comprendre le principe d'affichage en pb
exemple dans le code qui suit pourquoi j'ai du mal a avoir un affichage clair de mon sprite tir1

Code : Tout sélectionner

;fond et vaisseau  et mouvement suivant souris
;scrolling fond d'ecran


InitSprite():InitKeyboard():InitMouse()


Enumeration
#galax
#vaisseau
#fond
#tir1
EndEnumeration

Global posxtir ,posytir,t=1
scrolling=0
OpenScreen(800,600,32,"ecranjeu")

LoadSprite(#galax,"c:\space\gala1.bmp")
LoadSprite(#vaisseau,"c:\space\vaisseau.bmp",0);charge le dessin
LoadSprite(#tir1,"c:\space\tir1.bmp",0)
Declare gestiontir()


;******************************
 Procedure gestiontir()
posxtir=MouseX()+13
 posytir=MouseY() 
 If t=1 And  MouseButton(#PB_MouseButton_Left)=1
While posytir>0
posytir -1
TransparentSpriteColor(#tir1,$ffffff)
DisplayTransparentSprite(#tir1,posxtir,posytir)
t=0
Wend
EndIf

If MouseButton(#PB_MouseButton_Left)=0:t=1:EndIf
EndProcedure
;***********************************
Repeat

DisplaySprite((#galax),0,scrolling)
DisplaySprite((#galax),0,scrolling-600)
scrolling+1:If scrolling>600:scrolling=0:EndIf
TransparentSpriteColor(#vaisseau,$ffffff)
DisplayTransparentSprite(#vaisseau,MouseX(),MouseY())
gestiontir()

ExamineMouse()
ExamineKeyboard()
FlipBuffers()

Until KeyboardPushed(#PB_Key_All)

End

je vous remercie d'avance

Publié : dim. 09/déc./2007 21:26
par RV
Salut et bienvenue à toi,

Je n'ai pas tes images 'gala1.bmp' 'vaisseau.bmp' et 'tir1.bmp' mais j'ai fait sans!

Code : Tout sélectionner

InitSprite():InitKeyboard():InitMouse() 


Enumeration 
#galax 
#vaisseau 
#fond 
#tir1 
EndEnumeration 

Global posxtir ,posytir,t=0 
scrolling=0 
OpenScreen(800,600,32,"ecranjeu") 

LoadSprite(#galax,"c:\space\gala1.bmp") 
LoadSprite(#vaisseau,"c:\space\vaisseau.bmp",0);charge le dessin 
TransparentSpriteColor(#vaisseau,$ffffff) 
LoadSprite(#tir1,"c:\space\tir1.bmp",0) 
TransparentSpriteColor(#tir1,$ffffff) 

Declare gestiontir() 


;****************************** 
Procedure gestiontir()
    If t=0 And MouseButton(#PB_MouseButton_Left)=1
        posxtir=MouseX()+13
        posytir=MouseY()
        t=1
    EndIf
    If t=1
        posytir-1
        If posytir<=0
            t=0
        EndIf
        DisplayTransparentSprite(#tir1,posxtir,posytir) 
    EndIf
EndProcedure 
;*********************************** 

Repeat 

    DisplaySprite(#galax,0,scrolling) 
    DisplaySprite(#galax,0,scrolling-600) 
    scrolling+1:If scrolling>600:scrolling=0:EndIf 
    DisplayTransparentSprite(#vaisseau,MouseX(),MouseY()) 
    gestiontir() 
    
    ExamineMouse() 
    ExamineKeyboard() 
    FlipBuffers() 

Until KeyboardPushed(#PB_Key_All) 

End 
Dans ton cas, tu ne peux tirer qu'une seule fois en attendant que ton sprite #tir1 ne quitte l'écran! :?
Si tu veux gérer plusieurs tirs alors je te conseille de passer par une Linked List! :wink: