Demande de tuto "Particle"
Publié : ven. 23/févr./2018 16:12
Si quelqu'un maitrise les particles, j'aimerai un tuto simple.
L'exemple de la doc est magnifique mais je le trouve trop complexe.
J'ai essayé de faire un test, ça rend vraiment n'imp.
L'exemple de la doc est magnifique mais je le trouve trop complexe.
J'ai essayé de faire un test, ça rend vraiment n'imp.
Code : Tout sélectionner
Enumeration
#Emeteur
EndEnumeration
IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"
UsePNGImageDecoder()
#CameraSpeed = 1
#MaxSpeedFactor = 10
#MinSpeedFactor = 0
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
CreateParticleEmitter(#Emeteur, 400, 400, 400, #PB_Particle_Point, 2, 2, 2)
; Creation d'une texture (10x10 pixel blanc)
; TX = CreateTexture(#PB_Any, 10, 10)
; StartDrawing(TextureOutput(TX))
; Box(0,0,10,10,$FFFFFF)
; StopDrawing()
IM = LoadImage(#PB_Any, #PB_Compiler_Home + "\Examples\3D\Data\Textures\Caisse.png")
TX = CreateTexture(#PB_Any,64,64)
StartDrawing(TextureOutput(TX))
DrawImage(ImageID(IM),0,0)
StopDrawing()
; Création du material d'après la texture
CreateMaterial(0, TextureID(TX))
; Création de l'émeteur de particules
CreateParticleEmitter(#Emeteur, 200, 200, 1, #PB_Particle_Box,64,64,0)
ParticleMaterial (#Emeteur, MaterialID(0))
ParticleTimeToLive (#Emeteur, 5, 10)
ParticleEmissionRate(#Emeteur, 25)
ParticleSize (#Emeteur, 8, 8)
ParticleColorRange (#Emeteur, RGB(255,0,0), RGB(0, 255, 0))
MoveParticleEmitter(#Emeteur, 0, 0, 0 )
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 0, 100, #PB_Absolute)
Repeat
Screen3DEvents()
If ExamineMouse()
MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
EndIf
If ExamineKeyboard()
If KeyboardReleased(#PB_Key_F5)
Disable = 1 - Disable
DisableParticleEmitter(#Emeteur, Disable)
EndIf
If KeyboardPushed(#PB_Key_F6)
speedFactor = speedFactor + percent * (#MaxSpeedFactor - speedFactor)
ParticleSpeedFactor(#Emeteur, speedFactor)
EndIf
If KeyboardPushed(#PB_Key_F7)
speedFactor = speedFactor + percent * (#MinSpeedFactor - speedFactor)
ParticleSpeedFactor(#Emeteur, speedFactor)
EndIf
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
EndIf
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf