;
; ------------------------------------------------------------
;
; PureBasic - Particle
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
; [F5] = Enable/Disable ParticleEmitter 0
; [F6] = SpeedFactor + for ParticleEmitter 1
; [F7] = SpeedFactor - for ParticleEmitter 1
#CameraSpeed = 1
#MaxSpeedFactor = 10
#MinSpeedFactor = 0
IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY, speedFactor = 1.0, percent = 0.01
If InitEngine3D()
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
LoadTexture(0, "flare.png")
CreateMaterial(0, TextureID(0))
DisableMaterialLighting(0, 1)
MaterialBlendingMode (0, #PB_Material_Add)
CreateParticleEmitter(0, 10, 1, 1, 0)
ParticleMaterial (0, MaterialID(0))
ParticleTimeToLive (0, 2, 2)
ParticleEmissionRate(0, 20)
ParticleSize (0, 30, 30)
ParticleColorRange (0, RGB(255,0,0), RGB(255, 0, 255))
CreateParticleEmitter(1, 10, 1, 1, 0)
ParticleMaterial (1, MaterialID(0))
ParticleTimeToLive (1, 2, 2)
ParticleEmissionRate(1, 20)
ParticleSize (1, 30, 30)
ParticleColorRange (1, RGB(255, 255, 0), RGB(0, 255, 0))
MoveParticleEmitter(1, -50, 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(0, Disable)
EndIf
If KeyboardPushed(#PB_Key_F6)
speedFactor = speedFactor + percent * (#MaxSpeedFactor - speedFactor)
ParticleSpeedFactor(1, speedFactor)
EndIf
If KeyboardPushed(#PB_Key_F7)
speedFactor = speedFactor + percent * (#MinSpeedFactor - speedFactor)
ParticleSpeedFactor(1, 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
Else
MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf
End