;
; ------------------------------------------------------------
;
; PureBasic - Particle
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
; [F5] = включить/отключить ParticleEmitter 0
; [F6] = SpeedFactor + для ParticleEmitter 1
; [F7] = SpeedFactor - для 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("Ошибка", "3D Движок не может быть инициализирован", 0)
EndIf
End