; CountParticles Example ; ---------------------- ; Requires Extended mode. Graphics3D 640,480,0,2 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,2,-6 CameraClsColor camera,8,12,24 floor=CreatePlane() EntityColor floor,30,34,44 ; A fiery fountain in the middle of the scene emitter=CreateParticleEmitter(1000) PositionEntity emitter,0,0.5,0 ParticleLifetime emitter,1.5,2.5 ParticleVelocity emitter,0,4,0,0.6,0.5,0.6 ParticleGravity emitter,0,-4,0 ParticleColor emitter,255,220,120,1,255,80,0,0 ParticleSize emitter,0.12,0.03,0.2 EntityBlend emitter,3 rate=100 While Not KeyDown(1) ; [ / ] change the emission rate, Space fires a burst If KeyDown(26) And rate>0 Then rate=rate-2 If KeyDown(27) And rate<400 Then rate=rate+2 ParticleEmissionRate emitter,rate If KeyHit(57) Then EmitParticles emitter,200 ; Arrow keys move the camera If KeyDown(200) Then MoveEntity camera,0,0,0.1 If KeyDown(208) Then MoveEntity camera,0,0,-0.1 If KeyDown(203) Then TurnEntity camera,0,1,0 If KeyDown(205) Then TurnEntity camera,0,-1,0 ; UpdateWorld also advances the particle simulation UpdateWorld RenderWorld Text 0,0,"Arrow keys: move camera [ / ] : emission rate Space: burst Esc: exit" ; CountParticles reports how many particles are alive right now Text 0,20,"CountParticles(emitter) = "+CountParticles(emitter) Text 0,40,"Emission rate: "+rate+" per second" Flip Wend End