Page 2 sur 2

Publié : mar. 26/sept./2006 7:13
par Flype
ce qui n'est pas le cas dans mon code plus haut... puisque je donne une direction aléatoire dès le départ (création) d'un objet.

Publié : mar. 26/sept./2006 9:34
par Frenchy Pilou
Décortiquer un programme est un sport de haute voltige :)
C'est plus facile quand tout est mis en commentaires
Dans 20 ans qui saura relire toutes ces lignes?
Il faut aider les générations futures :)

Publié : mer. 27/sept./2006 8:00
par SPH
merde effacée

Publié : mer. 27/sept./2006 9:07
par SPH
Je viens de découvrir après coup le tutorial sur les structures et les listes chainées (présent dans DEBUTANT).
Si, comme moi, tout ca est inconnu pour vous, lisez ce tuto :
http://purebasic.hmt-forum.com/viewtopic.php?t=882

Publié : sam. 30/sept./2006 2:23
par SPH
merde effacée

Publié : sam. 30/sept./2006 12:07
par Anonyme2
Ca marche bien l'exemple des collisions :D

Publié : sam. 30/sept./2006 12:11
par SPH
Denis a écrit :Ca marche bien l'exemple des collisions :D
Ouai, mais bon, le code utilise des point() pour tester si il y a une collision; d'où un ralentissement rapide... Mais bon, ca marche :lol:

Publié : sam. 30/sept./2006 14:47
par Backup
petit exemple de collision a l'aide de sprites


  ; codé par Dobro
rezx=1024
rezy=768
nombre_sprite=600


#sprite =0
#Fenetre =1
Structure etoile
    x.l
    Y.l
    sensy.l
    sensx.l
    couleur.l
EndStructure
Dim etoile.etoile(1001)



InitMouse ()
InitSprite ()
InitKeyboard ()
OpenWindow ( #Fenetre , 1,1,rezx, rezy, "une touche pour sortir" , #PB_Window_SystemMenu ) ; on ouvre une fenetre
OpenWindowedScreen ( WindowID ( #Fenetre ) , 0, 0,rezx, rezy, 1, 1, 1) ; on met un ecran dedans !!

CreateSprite ( #sprite ,4,4)
StartDrawing ( SpriteOutput ( #sprite ))
Circle (2, 2, 2 , RGB (0,255,255))
StopDrawing ()

For i=0 To nombre_sprite
    etoile(i)\x= Random (rezx)
    etoile(i)\Y= Random (rezy)
    etoile(i)\sensy=2
    etoile(i)\sensx=2
    etoile(i)\couleur= RGB ( Random (rezy) , Random (rezy) , Random (rezy) )
     CreateSprite (i,4,4)
     StartDrawing ( SpriteOutput (i))
     Circle (2, 2, 2 , RGB ( Random (255), Random (255), Random (255)))
     StopDrawing ()
Next i



Repeat
    Event= WindowEvent ()
    
     For i=0 To nombre_sprite
         ExamineKeyboard ()
        etoile(i)\Y=etoile(i)\Y+etoile(i)\sensy
         etoile(i)\x=etoile(i)\x+etoile(i)\sensx
         If etoile(i)\Y> rezy :etoile(i)\sensy=-etoile(i)\sensy: EndIf
         If etoile(i)\Y< 0 :etoile(i)\sensy=-etoile(i)\sensy: EndIf
        
         If etoile(i)\x> rezx :etoile(i)\sensx=-etoile(i)\sensx: EndIf
         If etoile(i)\x< 0 :etoile(i)\sensx=-etoile(i)\sensx: EndIf
        
        
         DisplaySprite (i,etoile(i)\x,etoile(i)\Y)

         For o=0 To nombre_sprite
             If SpriteCollision (o, etoile(o)\x, etoile(o)\Y,i, etoile(i)\x,etoile(i)\Y)
                etoile(i)\sensx=-etoile(i)\sensx
                etoile(i)\sensy=-etoile(i)\sensy
                etoile(o)\sensx=-etoile(o)\sensx
                etoile(o)\sensy=-etoile(o)\sensy
         EndIf
     Next o
        
        
     Next i
     FlipBuffers (1) ;
     ClearScreen ( RGB (0,0,0))
Until Event= #PB_Event_CloseWindow Or KeyboardPushed ( #PB_Key_All ) ;