ça y est je les ai laché !!!!!
Publié : dim. 29/juin/2008 9:43
Code : Tout sélectionner
OpenConsole()
RandomSeed(ElapsedMilliseconds())
;-Initialisation & creation structure
;{;
;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()
InitMouse()
Structure ent
xe.w
ye.w
nom.s
cc.w ;code de conduite
vi.w ;nb vie
cr.w ; r couleur RGB
cg.w ; g "
cb.w ; b "
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
;}
;-creation des entitées
;{
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()
Next i
;}
;-boucle principale
Repeat
RandomSeed(ElapsedMilliseconds())
ExamineKeyboard()
ExamineMouse()
For i=1 To nbent
DisplayTransparentSprite(i,ent(i)\xe,ent(i)\ye) ; affichage des entitées
Next i
;-determine la direction
;{
For i=1 To nbent
;If ent(i)\vi=0 : Goto cont ; si il est crevé , lache l'affaire...
d=Random(7)+1; choix de la direction
If d=1 And ent(i)\ye>0: ent(i)\ye=ent(i)\ye-1
EndIf ; nord
If d=2 And ent(i)\ye>0 And ent(i)\xe<736 : ent(i)\ye=ent(i)\ye-1 : ent(i)\xe=ent(i)\xe+1
EndIf ; nord/est
If d=3 And ent(i)\xe<736: ent(i)\xe=ent(i)\xe+1
EndIf ; est
If d=4 And ent(i)\ye>32 And ent(i)\xe<737 : ent(i)\ye=ent(i)\ye-1 : ent(i)\xe=ent(i)\xe+1
EndIf ; sud/est
If d=5 And ent(i)\ye<736: ent(i)\ye=ent(i)\ye+1
EndIf ; sud
If d=6 And ent(i)\ye<736 And ent(i)\xe>0 : ent(i)\ye=ent(i)\ye+1 : ent(i)\xe=ent(i)\xe-1
EndIf ; sud/ouest
If d=7 And ent(i)\xe>0: ent(i)\xe=ent(i)\xe-1
EndIf ; ouest
If d=8 And ent(i)\ye>0 And ent(i)\xe>0 : ent(i)\ye=ent(i)\ye-1 : ent(i)\xe=ent(i)\xe-1
EndIf ; nord/ouest
cont:
Next i
;}
FlipBuffers() ; affiche le resultat a l'ecran !
ClearScreen(RGB(0, 0,0)) ; nettoie l'ecran apres affichage
Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(2)
End
;**************************************************************************
;-sp: chargement des données
;{
charge:
For i=dnb To fnb
ent(i)\vi=10
x=Random(992) : y=Random(736)
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
;}


dobro help