
bravo, l'effet est très joli! Que le code soit simple c'est encore mieux

Code : Tout sélectionner
;Initialisation des composants
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
UsePNGImageDecoder()
UseJPEGImageDecoder()
Enumeration
#Flamme
EndEnumeration
;Création de la fenêtre principale
SetRefreshRate(60)
MaFenetre = OpenScreen(800,600,32,"Test")
If MaFenetre = 0
MessageRequester("Erreur", "Impossible d'ouvrir une fenêtre DirectX", #PB_MessageRequester_Ok)
EndIf
Part2D = LoadSprite(#PB_Any,"flare.png",#PB_Sprite_Texture)
Part3D = CreateSprite3D(#PB_Any,Part2D)
Bougie = LoadSprite(#PB_Any,"candle.jpg")
IncludeFile("CPS.pb")
;Boucle Principale
Repeat
ClearScreen(RGB(0,0,0))
ExamineMouse()
DisplaySprite(Bougie,334,255)
For i = 1 To 10 ParticleSetup(#Flamme,400,300,0,0,-Random(70),Random(600),Random(30),Random(30),255,255,255,Random(50),"light",255,-8,0.2,0.2,0)
Next
ResetList(MesParticules())
While NextElement(MesParticules())
ParticleUpdate(0,800,0,600)
DisplayParticle(Part2D,Part3D)
Wend
ExamineKeyboard()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Code : Tout sélectionner
ResetList(MesParticules())
While NextElement(MesParticules())
ParticleUpdate(0,800,0,600)
If ParticleVie() < 20
DisplayParticle(Part2D,Part3D)
EndIf
Wend
Code : Tout sélectionner
ResetList(MesParticules())
While NextElement(MesParticules())
ParticleUpdate(0,800,0,600)
If ParticleID() = #Fumee And ParticleVie() < 20
DisplayParticle(Fumee2D,Fumee3D)
ElseIf ParticleID() = #Flamme
DisplayParticle(Part2D,Part3D)
EndIf
Wend
Crystal Noir a écrit :Une flamme est bleue à sa base car c'est à sa base que la température est la plus élevée.
Vous remarquerez que, à la base de la mèche, la flamme est transparente. C'est la zone la plus "froide" de la flamme (600°C)
Juste au-dessus de la mèche, la flamme est orange. L'oxygène, là aussi, a du mal à arriver. La température dans cette zone atteint les 800°C.
Au-dessus, c'est la zone de combustion: la flamme est jaune. C'est dans cette zone que les particules de suie brûlent comme du charbon et produisent de la lumière, au même titre que le filament d'une ampoule électrique. La température dans cette zone tourne autour des 1200°C. Plus on s'approche de l'extérieur de la flamme, plus l'oxygène est présent et plus la température est haute.