Page 1 sur 1

Essai Particules St Valentin ^^

Publié : lun. 13/févr./2012 16:01
par Ar-S
Ma 1ère tentative de création et animation de particules.
PB 4.60 minimum

Code à copier dans : \Examples\3D


J'ai testé le code en fullscreen 1680 x 1050 / 32 / 60

Code : Tout sélectionner

  ; ------------------------------------------------------------
  ;
  ;  Test de création de Particlules PB 4.60 by Ar-S
  ;
  ;  Pour la St valentin.
  ;
  ; ------------------------------------------------------------

  
  IncludeFile "Screen3DRequester.pb"
   
  Define.f KeyX, KeyY, MouseX, MouseY
  
  If InitEngine3D()
    
    Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
    
    InitSprite()
    InitKeyboard()
    InitMouse()
    
    If Screen3DRequester()
      
      LoadTexture(0, "flareCoeuruniRedt.png")
      
      CreateMaterial(0, TextureID(0))
      DisableMaterialLighting(0, 1)
      MaterialBlendingMode   (0, #PB_Material_AlphaBlend)
      
      
      CreateParticleEmitter(0, 5, 5, 1, 0)
      ParticleMaterial    (0, MaterialID(0))
      ParticleTimeToLive  (0, 10, 10)
      ParticleEmissionRate(0, 25)
      ParticleSize        (0, 5, 5)
      ParticleColorRange  (0, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(0, -50, 0, 0)
      ParticleVelocity(0, 135, 135)
      
      CreateParticleEmitter(1, 15, 15, 1, 0)
      ParticleMaterial    (1, MaterialID(0))
      ParticleTimeToLive  (1, 10, 10)
      ParticleEmissionRate(1, 13)
      ParticleSize        (1, 15, 15)
      ParticleColorRange  (1, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(1, -50, 0, 0)
      ParticleVelocity(1, 150, 150)
      
      
      CreateCamera(0, 0, 0, 100, 100)
      
      CamX = -150
      Droite = 1
      gauche = -1
      
      CameraLocate(0,-50,60,150)
      
      Repeat
        Screen3DEvents()
        
        RenderWorld()
        
        If CamX <= -150
          Direction = Droite
        ElseIf CamX > 20
          Direction = gauche
          
        EndIf
        
        CamX + Direction
        CameraLocate(0,CamX,60,150)
        
        Screen3DStats()
        
        FlipBuffers()
      Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    EndIf
    
  Else
    MessageRequester("Error", "The 3D Engine can't be initialized",0)
  EndIf
  
  End
  
L'image : flareCoeuruniRedT.png
à copier dans Examples\3D\Data\Textures
Image

Ce qui me rebute :
- C'est dommage de ne pas pouvoir changer la taille de chaque particules tout comme on peut modifier la vélocité.
- je n'ai encore bien cerné le fonctionnement de positionnement de la caméra et des particules (absolue, relatif..)

Ce qui m'hallucine
- La fluidité du rendu. impressionnant

Du coup, je n'arrive pas à ralentir la "propulsion" des particules, je souhaiterai qu'elles montent de façon plus lente.
ou peut on gérer cela ?

Re: Essai Particules St Valentin ^^

Publié : lun. 13/févr./2012 16:54
par case
particle velocity a vue de nez ca doit bien servir a definir la vitesse de celles ci.
je suis au taf et je poste via teamviewer donc pas moyen de tester ton code

Re: Essai Particules St Valentin ^^

Publié : lun. 13/févr./2012 18:12
par Ar-S
Salut,
Je vais tester ça, mais il me semble que velocity jouait sur la dispersion des particules et non sur la vitesse.

----edit----

Effectivement, ça a l'air de le faire en abaissant la valeur max du velocity. Mais j'ai l'impression que la dispertion est du coup moins grande.

J'essaye maintenant d'insérer un sprite3D mais je n'arrive même pas à l'initialiser... Je suis pas fait pour la prog 3d..
.. mais j'persiste :)

Code : Tout sélectionner

  ; ------------------------------------------------------------
  ;
  ;  Test de création de Particlules PB 4.60 by Ar-S
  ;
  ;  Pour la St valentin.
  ;
  ; ------------------------------------------------------------
  
  UsePNGImageDecoder()
  
  
  ; --- Sprites ----
  Enumeration
    #S1 
    #S13D
  EndEnumeration
  
  
  
  IncludeFile "Screen3DRequester.pb"
  
  Define.f KeyX, KeyY, MouseX, MouseY
  
  If InitEngine3D()
    
    Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
    
    InitSprite()
    InitSprite3D()
    InitKeyboard()
    InitMouse()
    
    If Screen3DRequester()
      
      ILOVEU = LoadSprite(#S1, "I:\PROG\PureBasic4_60\Examples\3D\Data\Textures\aime.png", #PB_Sprite_AlphaBlending)
      If ILOVEU = 0
        Debug "Erreur loadsprite 3D"
      EndIf
      
      CreateSprite3D(#S13D, #S1)
      Sprite3DQuality(1)
      
      
      LoadTexture(0, "flareCoeuruniRedt.png")
      
      
      CreateMaterial(0, TextureID(0))
      DisableMaterialLighting(0, 1)
      MaterialBlendingMode   (0, #PB_Material_AlphaBlend)
      
      
      CreateParticleEmitter(0, 5, 5, 1, 0)
      ParticleMaterial    (0, MaterialID(0))
      ParticleTimeToLive  (0, 10, 10)
      ParticleEmissionRate(0, 25)
      ParticleSize        (0, 5, 5)
      ParticleColorRange  (0, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(0, -50, 0, 0)
      ParticleVelocity(0, 1, 80)
      
      CreateParticleEmitter(1, 15, 15, 1, 0)
      ParticleMaterial    (1, MaterialID(0))
      ParticleTimeToLive  (1, 10, 10)
      ParticleEmissionRate(1, 13)
      ParticleSize        (1, 15, 15)
      ParticleColorRange  (1, RGB(200,0,0), RGB(255,0,0))
      MoveParticleEmitter(1, -50, 0, 0)
      ParticleVelocity(1, 1, 100)
      
      
      CreateCamera(0, 0, 0, 100, 100)
      
      CamX = -180
      Droite = 1
      gauche = -1
      
      CameraLocate(0,-50,60,150)
      
      Repeat
        Screen3DEvents()
        
        RenderWorld()
        
        If Start3D()
            DisplaySprite3D(1, 0, 30)
          
            
          Stop3D()
        EndIf
        
        
        
        If CamX <= -150
          Direction = Droite
        ElseIf CamX > 50
          Direction = gauche
          
        EndIf
        
        CamX + Direction
        CameraLocate(0,CamX,60,150)
        
        Screen3DStats()
        
        FlipBuffers()
      Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    EndIf
    
  Else
    MessageRequester("Error", "The 3D Engine can't be initialized",0)
  EndIf
  
  End
  
Le fichier aime.png
Image


Le but étant de faire plaisir à madame tout en m'améliorant avec PB ^^

Re: Essai Particules St Valentin ^^

Publié : mar. 14/févr./2012 14:12
par Kwai chang caine
Ar-S a écrit :Le but étant de faire plaisir à madame tout en m'améliorant avec PB ^^
:lol: :lol: Comme je te comprends... :roll: