Page 1 sur 1

sprite

Publié : sam. 28/juin/2008 7:23
par chikun

Code : Tout sélectionner

InitSprite ()


OpenScreen (1024, 768, 32, "squelette ecran" ) 
KeyboardMode (1) 



Structure balle 
    x.w
    y.w 
    identite.s 
    sensx.l 
    sensy.l 
EndStructure 




     CreateSprite ( Sprite,32,32) ; on cree un sprite (une balle) 
     StartDrawing ( SpriteOutput (Sprite) ) ; on va dessiner dans le sprite 
         Circle (16, 16, 16, RGB ($F1,coul,$F)) ; on dessine un rond dedans(dans le sprite) 
         DrawText (10, 8,balle(1)\identite.s, RGB (255,255,255), RGB ($F1,coul,$F)) ; on ecrit l'identité sur le sprite ! 
     StopDrawing () 





 balle(1)\x=10
    balle(i)\y=10  
    balle(i)\sx=0 
    balle(i)\sy=0 
    
     id$= Chr ( Random (127)+32) 
    balle(i)\identite.s=id$ 
    
    End
    
kess ki ne va pa au niveau du drawtext

j'essai de comprendre UN sprite avec le prog de dobro

Publié : sam. 28/juin/2008 7:54
par Backup
faudrai voir a mettre tout ce qu'il faut dans ton prg , c'est un minimum :?


j'ai commenté ce qu'il manquait avec des "<----------"



Code : Tout sélectionner

InitSprite ():InitKeyboard():InitMouse()  ; <--------  on va gerer une souris et un clavier !!!

OpenScreen (1024, 768, 32, "squelette ecran" )
KeyboardMode (1)



Structure balle
    x.w
    y.w
    sx.w
    sy.w
    identite.s
    sensx.l
    sensy.l
EndStructure

#Sprite=1 ; <-------- on donne un numero a au moin 1 sprite
Dim  balle. balle(1)  ; <-------- on dimentionne concretement la structure




CreateSprite ( #Sprite,32,32) ; on cree un sprite (une balle)
StartDrawing ( SpriteOutput (#Sprite) ) ; on va dessiner dans le sprite
    Circle (16, 16, 16, RGB ($F1,coul,$F)) ; on dessine un rond dedans(dans le sprite)
    DrawText (5, 8,balle(1)\identite.s, RGB (255,255,255), RGB ($F1,coul,$F)) ; on ecrit l'identité sur le sprite !
StopDrawing ()

balle(1)\x=10
balle(i)\y=10 
balle(i)\sx=0
balle(i)\sy=0
   
id$= Chr ( Random (127)+32)
balle(1)\identite.s ="OO"; <-------- on remplis ce champs de structure avec quelque chose
xtp=1 
xt=3
Repeat  ; <--------  on cree une boucle, sion le prg se ferme automatiquement !!!
    
    ;*************** petit animation sur le Sprite  ********************
    If xt>6:xtp=-xtp:EndIf
    If xt<3:xtp=-xtp:EndIf 
    xt=xt+xtp
    StartDrawing ( SpriteOutput (#Sprite) ) ; on va dessiner dans le sprite
        DrawText (xt, 8,balle(1)\identite.s, RGB (255,255,255), RGB ($F1,coul,$F)) ; on ecrit l'identité sur le sprite !
    StopDrawing ()
    ; *****************************************************************
    
    
    ExamineKeyboard():ExamineMouse()  ; <--------  on observe le comportement de la souris et du clavier
    DisplaySprite(#Sprite,1024/2,768/2)
    
    
    FlipBuffers() ; affiche le resultat a l'ecran !  ; <--------  INDISPENSABLE sans ça on ne verra pas le resultat a l'ecran
    Delay(1)  ; <--------  permet de rendre la main au system de temps en temps
Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(2)  ; <-------- on donne une condition de sortie


   
End
   

Publié : sam. 28/juin/2008 9:12
par chikun
:lol: :lol: :lol: :lol: :lol: :lol: :lol: mdrrrr

tu vois quand tu veux , tu me comprends!! ... chez moi c l'heure je vais manger , apres je t'en remet une couche, si il y a autre chose qui passe pas dans ma calbasse (dont tu n'etais pas obligé de montrer les yeux "égarés) car quand je saurais maitriser les sprites , ne leur tourne jamais le dos
arf :lol:

allé merci @+

Publié : dim. 29/juin/2008 4:08
par chikun
merci dobro :wink: et reste avec nous, on fait des frites

voilà, je vais passer les faire se promener maintenant....(kil dit!) :lol:

Code : Tout sélectionner


;10	neu		code de conduite:1  =normal   ;vert (3,252,85)
;4	med		code de conduite:2  =docteur  ;jaune (252,249,3)
;2	psy		code conduite:3     =psy      ;bleu (0,255,255)
;32	bad	  code conduite:4     =mechant  ;orange (255,100,0)
;2  kil	  code de conduite:5  =tueur    ;rouge (255,0,0)

InitSprite()
OpenScreen(1024, 768, 32, "squelette ecran") 

InitKeyboard()


Structure ent 
   xe.w 
   ye.w 
   nom.s
   cc.w    
   cr.w
   cg.w
   cb.w
EndStructure 

nbent=50 
Dim ent.ent(nbent) 


; charge les données des entitées:
;{
dnb=1:fnb=10:cd=1:rr=3:rg=252:rb=85:n$="neu"
Gosub charge  ;pour les 10 neutres 
dnb=11:fnb=14:cd=2:rr=255:rg=249:rb=3:n$="doc"
Gosub charge  ;pour les 04 docteurs
dnb=15:fnb=16:cd=3:rr=0:rg=255:rb=255:n$="psy"
Gosub charge  ;pour les 02 psy
dnb=17:fnb=48:cd=4:rr=255:rg=100:rb=0:n$="bad"
Gosub charge  ;pour les 32 mauvais
dnb=49:fnb=50:cd=5:rr=255:rg=0:rb=0:n$="kill"
Gosub charge  ;pour les 2 tueurs

;}


For i=1 To nbent 
  
    CreateSprite( i,32,32) ; on cree un sprite (une balle) 
    StartDrawing(SpriteOutput(i) ) ; on va dessiner dans le sprite 
        Circle(16, 16, 16, RGB(ent(i)\cr,ent(i)\cg,ent(i)\cb)) ; on dessine un rond dedans(dans le sprite)  
        DrawText(4,8,ent(i)\nom,RGB(0,0,125),RGB(ent(i)\cr,ent(i)\cg,ent(i)\cb)) ; on ecrit l'identité sur le sprite ! 
    StopDrawing()
    
   
    DisplayTransparentSprite(i,ent(i)\xe,ent(i)\ye) 
    
Next i

   FlipBuffers()


 Repeat  
  ExamineKeyboard()
  If KeyboardPushed(#PB_Key_Escape) 
    Goto cont
  EndIf
ForEver 

cont:

End

;**************************************************************************
; sp: chargement des données
;{

charge:
For i=dnb To fnb

x=Random(1000) : y=Random(700)
ent(i)\xe=x : ent(i)\ye=y
ent(i)\nom=n$
ent(i)\cc=cd
ent(i)\cr=rr:ent(i)\cg=rg:ent(i)\cb=rb
Next

Return

;}