Page 1 sur 1

ça y est je les ai laché !!!!!

Publié : dim. 29/juin/2008 9:43
par chikun

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

;}




:idea: mais keeki font :roll:

dobro help

Publié : dim. 29/juin/2008 11:53
par Backup
..........

Publié : dim. 29/juin/2008 12:15
par chikun
:D

approche que je te fasse un bisou :oops:

l'élève n'est pas si mauvais (?)

je continue....

Publié : dim. 29/juin/2008 13:12
par SPH

Code : Tout sélectionner

        If ent(i)\xe<0 
            ent(i)\xe=1024 
            
        EndIf 
        If ent(i)\xe>1024 
            ent(i)\xe=0 
            
        EndIf 
        If ent(i)\ye<0 
            ent(i)\ye=768 
            
        EndIf 
        If ent(i)\ye>768 
            ent(i)\ye=0 
        EndIf 
        
Méfiance... S'il s'agit de variables ayant un rapport avec l'affichage (vu les parametres, je pense que oui), remplace les 768 par des 767 et les 1024 par des 1023

Publié : dim. 29/juin/2008 13:53
par chikun
c remplaçé , merci

Publié : dim. 29/juin/2008 14:14
par Backup
SPH a écrit :

Code : Tout sélectionner

        If ent(i)\xe<0 
            ent(i)\xe=1024 
            
        EndIf 
        If ent(i)\xe>1024 
            ent(i)\xe=0 
            
        EndIf 
        If ent(i)\ye<0 
            ent(i)\ye=768 
            
        EndIf 
        If ent(i)\ye>768 
            ent(i)\ye=0 
        EndIf 
        
Méfiance... S'il s'agit de variables ayant un rapport avec l'affichage (vu les parametres, je pense que oui), remplace les 768 par des 767 et les 1024 par des 1023
sert a rien de remplacer !! :?
parce qu'il s'agit de coordonnées pour les Sprites , et les Sprites on peut les envoyer en dehors de l'écran !!

Heureusement d'ailleurs !! sinon adieux les Scrolling :lol:

par contre s'il avait s'agit de faire des PLOT() , ou POINT() là SPH avait raison :)

Publié : dim. 29/juin/2008 15:09
par chikun
j'avais compris ça monsieur Dobro, disons que je me suis empressé d'executer et devenir repondre ici avant d'avoir vu toutes tes modifs qui optimisent le codage. le probleme du "sortie d'ecran n'est plus d'actualité..

j'y retourne apres avoir fait une pause en me consacrant à la colision

ah! g diminuer de moitié le temps de changement de direction; tu ne m'en voudras pas :lol:

Publié : dim. 29/juin/2008 15:58
par chikun
pffffff en plein boulot sur les test de colision que ma cop m'appele pour
qu'on passe la soirée ensemble. :cry:

vivement demain apres le boulot :roll:

Publié : dim. 29/juin/2008 16:00
par Chris
T'es peut-être pas obligé de nous raconter ta vie, non plus. :lol:

Publié : dim. 29/juin/2008 16:52
par Backup
Chris a écrit :T'es peut-être pas obligé de nous raconter ta vie, non plus. :lol:
c'est clair ! :lol:

Publié : dim. 29/juin/2008 17:33
par Stefou
Fait attention Chikun y'a une tripoté de célibataire grincheux içi ! :D :D

Publié : dim. 29/juin/2008 17:38
par Chris
Stefou a écrit :Fait attention Chikun y'a une tripoté de célibataire grincheux içi ! :D :D
Je connais pas mal de mariés qui sont nettement plus grincheux que nous.
(D'ailleurs, c'est peut-être dû au fait qu'ils soient mariés, justement.) :roll:

Publié : mer. 02/juil./2008 16:54
par Ollivier
Elle est gentille ?

Publié : jeu. 03/juil./2008 7:40
par Kwai chang caine
Je connais pas mal de mariés qui sont nettement plus grincheux que nous.
(D'ailleurs, c'est peut-être dû au fait qu'ils soient mariés, justement.)
Aaaaahhh !!!! les femmes........difficile de vivre avec, tres dur de vivre sans .........:roll: