Yes..You're right. Moving the camera way back enhances the effect.
I've messed with the nuclear bomb idea a bit more without scripting and came up this small animated demo.
Sorry for the messy code. This was made in a jiffy.
Here's the demo code: (Have fun).
Added a more fiery bloom and fireblast. It could use two particleemitters more to make the bloom 'fold in' on itself.
Code: Select all
;The Event demo
;Made a small animated nightmare out of it this time.
;By DK_PETER
;Title: The Event
EnableExplicit
UsePNGImageDecoder()
UseJPEGImageDecoder()
UseJPEGImageEncoder()
InitEngine3D()
InitSprite()
InitKeyboard()
Structure _mesh
id.i
ms.i
tx.i[2]
ma.i[2]
nod.i
EndStructure
Structure _parData
id.i
ma.i
tx.i
disabled.i
EndStructure
Structure _SunData
id.i
ma.i
tx.i
nod.i
tim.i
lgt.i
EndStructure
Structure _par
birds._parData
Atombase._parData[6]
AtomBlast._parData[2]
AtomBloom._parData[7]
Aftermath._parData
rocketfire._parData
groundsmoke._parData[10]
EndStructure
Structure _Sprites
Blink.i[2]
EndStructure
Global pa._par, grnd._mesh, cloud._mesh, Sun._SunData, rocket._mesh
Global sp._Sprites, BeginEvent.i, bird, Smokecheck.i, Procret.i, ev.i, xsmoke.i, Quit.i = 0
Declare.i SummerTime()
Declare.i NuclearTime()
Declare.i CreateInBetween()
Declare.i CreateLandscape()
Declare.f RandomF(min.f, Max.f, Res.i = 100000)
Declare.i MakeSpritesReady()
Procedure.i Skymaker(Night.i = #False)
Protected tm.i, color.i, x.i, radinterval.i
radinterval = 255/32
If Night = #False
color = radinterval * NodePitch(sun\nod)
CameraBackColor(0, RGB(0, 0, color))
Else
CameraBackColor(0, 0)
EndIf
EndProcedure
Procedure.i NuclearTime()
Protected x.i
With grnd
\tx[1] = LoadTexture(#PB_Any, "b.jpg")
\ma[1] = CreateMaterial(#PB_Any, TextureID(\tx[1]))
AddMaterialLayer(\ma[1], TextureID(LoadTexture(#PB_Any, "b2.jpg")), #PB_Material_Color)
ScaleMaterial(\ma[1], 2,2, 1)
DisableMaterialLighting(\ma[1], #False)
EndWith
With cloud
\tx[1] = LoadTexture(#PB_Any, "c.jpg")
\ma[1] = CreateMaterial(#PB_Any, TextureID(\tx[0]))
AddMaterialLayer(\ma[1], TextureID(\tx[1]), #PB_Material_Add)
ScrollMaterial(\ma[1], 0.01, 0.02, #PB_Material_Animated, 0)
ScrollMaterial(\ma[1], -0.01, 0.01, #PB_Material_Animated, 1)
EndWith
With rocket
\ms = CreateCylinder(#PB_Any, 0.3, 1, 6, 1, 0)
\tx[0] = CreateTexture(#PB_Any, 10, 10)
StartDrawing(TextureOutput(\tx[0]))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor($222222)
BackColor($CCCCCC)
BoxedGradient(0, 0, 10, 10)
Box(0, 0, 10, 10)
StopDrawing()
\ma[0] = CreateMaterial(#PB_Any, TextureID(\tx[0]))
\id = CreateEntity(#PB_Any, MeshID(\ms), MaterialID(\ma[0]), 0, 16, 995)
RotateEntity(\id, 90, 0, 0, #PB_Absolute)
EndWith
With pa\rocketfire
\tx = CreateTexture(#PB_Any, 20, 20)
StartDrawing(TextureOutput(\tx))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor($001BFF) : BackColor($00F2FF)
CircularGradient(10, 10, 8)
Circle(10, 10, 8)
StopDrawing()
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
\id = CreateParticleEmitter(#PB_Any, 0.2,0.2,0.2,#PB_Particle_Point, 0,16,996)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 0.5, 0.5)
ParticleTimeToLive(\id, 0.1, 0.1)
ParticleVelocity(\id, 0, 0.2)
ParticleEmissionRate(\id, 60)
ParticleEmitterDirection(\id, 0, 0, 1)
EndWith
With pa\Atombase[0]
\tx = LoadTexture(#PB_Any, "smoke.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_AlphaBlend)
\id = CreateParticleEmitter(#PB_Any, 1, 1, 1, #PB_Particle_Point, 0, 0, 10)
ParticleMaterial(\id, MaterialID(\ma))
ParticleColorFader(\id, 0.2, 0.8, 0.5)
ParticleColorRange(\id, $4B948D, $240BED)
ParticleEmissionRate(\id, 50)
ParticleEmitterDirection(\id, -0.7, 0, 0)
ParticleTimeToLive(\id, 1.2, 1.2)
ParticleVelocity(\id, 3, 3)
ParticleSpeedFactor(\id, 0.2)
EndWith
With pa\Atombase[1]
\tx = LoadTexture(#PB_Any, "smoke.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_AlphaBlend)
\id = CreateParticleEmitter(#PB_Any, 1, 1, 1, #PB_Particle_Point, 0, 0, 10)
ParticleMaterial(\id, MaterialID(\ma))
ParticleColorFader(\id, 0.2, 0.8, 0.5)
ParticleColorRange(\id, $4B948D, $240BED)
ParticleEmissionRate(\id, 50)
ParticleEmitterDirection(\id, 0.7, 0, 0)
ParticleTimeToLive(\id, 1.2, 1.2)
ParticleVelocity(\id, 3, 3)
ParticleSpeedFactor(\id, 0.2)
EndWith
With pa\Atombase[2]
\tx = LoadTexture(#PB_Any, "ring_flare.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
\id = CreateParticleEmitter(#PB_Any, 1, 1, 1, #PB_Particle_Point, 0,0, 9)
ParticleMaterial(\id, MaterialID(\ma))
ParticleColorFader(\id, 0.2, 0.8, 0.5)
ParticleColorRange(\id, $4B948D, $240BED)
ParticleEmissionRate(\id, 100)
ParticleSize(\id, 30, 30)
ParticleEmitterDirection(\id, 0, 1, 0)
ParticleTimeToLive(\id, 1.1, 1.1)
ParticleVelocity(\id, 10, 10)
ParticleSpeedFactor(\id, 0.4)
EndWith
With pa\AtomBloom[0]
\tx = LoadTexture(#PB_Any, "smoke.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_AlphaBlend)
\id = CreateParticleEmitter(#PB_Any, 1, 1, 1, #PB_Particle_Point, 0, 70, 13)
ParticleMaterial(\id, MaterialID(\ma))
ParticleColorFader(\id, 0.2, 0.8, 0.5)
ParticleColorRange(\id, $4B948D, $240BED)
ParticleEmissionRate(\id, 50)
ParticleEmitterDirection(\id, -0.7, -0.017, 0)
ParticleTimeToLive(\id, 1.5, 1.5)
ParticleVelocity(\id, 4, 4)
ParticleSpeedFactor(\id, 0.3)
EndWith
With pa\AtomBloom[1]
\tx = LoadTexture(#PB_Any, "smoke.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_AlphaBlend)
\id = CreateParticleEmitter(#PB_Any, 1, 1, 1, #PB_Particle_Point, 0, 70, 13)
ParticleMaterial(\id, MaterialID(\ma))
ParticleColorFader(\id, 0.2, 0.8, 0.5)
ParticleColorRange(\id, $4B948D, $240BED)
ParticleEmissionRate(\id, 50)
ParticleEmitterDirection(\id, 0.7, -0.017, 0)
ParticleTimeToLive(\id, 1.5, 1.5)
ParticleVelocity(\id, 4, 4)
ParticleSpeedFactor(\id, 0.3)
EndWith
With pa\AtomBloom[2]
\tx = CreateTexture(#PB_Any, 20, 20)
StartDrawing(TextureOutput(\tx))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor($0056D4) : BackColor($05C4C3)
CircularGradient(10, 10, 8)
Circle(10, 10, 8)
StopDrawing()
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
\id = CreateParticleEmitter(#PB_Any, 1, 1.03, 5, #PB_Particle_Point, 0, 70, 12.96)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 21, 21)
ParticleEmissionRate(\id, 25)
ParticleEmitterDirection(\id, -0.7, -0.054, 0)
ParticleTimeToLive(\id, 1.5, 1.5)
ParticleVelocity(\id, 4, 4)
ParticleSpeedFactor(\id, 0.3)
EndWith
With pa\AtomBloom[3]
\tx = CreateTexture(#PB_Any, 20, 20)
StartDrawing(TextureOutput(\tx))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor($0056D4) : BackColor($05C4C3)
CircularGradient(10, 10, 8)
Circle(10, 10, 8)
StopDrawing()
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
\id = CreateParticleEmitter(#PB_Any, 1, 1.03, 5, #PB_Particle_Point, 0, 70, 12.96)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 21, 21)
ParticleEmissionRate(\id, 25)
ParticleEmitterDirection(\id, 0.7, -0.054, 0)
ParticleTimeToLive(\id, 1.5, 1.5)
ParticleVelocity(\id, 4, 4)
ParticleSpeedFactor(\id, 0.3)
EndWith
With pa\AtomBlast[0]
\tx = LoadTexture(#PB_Any, "smoke.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_AlphaBlend)
\id = CreateParticleEmitter(#PB_Any, 30, 30, 1, #PB_Particle_Box, 0, 17, 10)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 60, 65)
ParticleEmissionRate(\id, 350)
ParticleEmitterDirection(\id, 0, 0, 1)
ParticleTimeToLive(\id, 2.5, 2.5)
ParticleVelocity(\id, 300, 400)
EndWith
With pa\AtomBlast[1]
\tx = CreateTexture(#PB_Any, 20, 20)
StartDrawing(TextureOutput(\tx))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor($113EE2) : BackColor($11D2E2)
CircularGradient(10, 10, 8)
Circle(10, 10, 8)
StopDrawing()
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
\id = CreateParticleEmitter(#PB_Any, 30, 30, 1, #PB_Particle_Box, 0, 27, 10)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 70, 70)
ParticleEmissionRate(\id, 350)
ParticleEmitterDirection(\id, 0, 0, 1)
ParticleTimeToLive(\id, 2.5, 2.5)
ParticleVelocity(\id, 100, 200)
EndWith
With pa\Aftermath
\tx = CreateTexture(#PB_Any, 20, 20)
StartDrawing(TextureOutput(\tx))
DrawingMode(#PB_2DDrawing_Gradient)
FrontColor($222222)
BackColor($FFFFFF)
CircularGradient(10, 10, 8)
Circle(10, 10, 8)
StopDrawing()
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
\id = CreateParticleEmitter(#PB_Any, 2000, 2000, 2000, #PB_Particle_Box, 0, 500, 500)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 2, 2)
ParticleColorRange(\id, $4B948D, $240BED)
ParticleEmissionRate(\id, 1550)
ParticleEmitterDirection(\id, 0, -1, 0)
ParticleTimeToLive(\id, 2, 2)
ParticleVelocity(\id, 0.2, 1)
EndWith
For x = 0 To 9
With pa\groundsmoke[x]
\tx = LoadTexture(#PB_Any, "smoke.png")
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_AlphaBlend)
\id = CreateParticleEmitter(#PB_Any, 7, 5, 7, #PB_Particle_Point, RandomF(-500,500), 1, RandomF(-2700,900))
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 20, 20)
ParticleEmissionRate(\id, 20)
ParticleEmitterDirection(\id, 0, 1, 0)
ParticleTimeToLive(\id, 0.3, 1)
ParticleVelocity(\id, 0.1, 0.3)
ParticleSpeedFactor(\id, 0.6)
DisableParticleEmitter(\id,#True) : \disabled = #True
EndWith
Next x
DisableParticleEmitter(pa\Atombase[0]\id,#True) : pa\Atombase[0]\disabled = #True
DisableParticleEmitter(pa\Atombase[1]\id,#True) : pa\Atombase[1]\disabled = #True
DisableParticleEmitter(pa\Atombase[2]\id,#True) : pa\Atombase[2]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[0]\id,#True): pa\AtomBloom[0]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[1]\id,#True): pa\AtomBloom[1]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[2]\id,#True): pa\AtomBloom[2]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[3]\id,#True): pa\AtomBloom[3]\disabled = #True
DisableParticleEmitter(pa\AtomBlast[0]\id,#True): pa\AtomBlast[0]\disabled = #True
DisableParticleEmitter(pa\AtomBlast[1]\id,#True): pa\AtomBlast[1]\disabled = #True
DisableParticleEmitter(pa\Aftermath\id,#True) : pa\Aftermath\disabled = #True
EndProcedure
Procedure.i SummerTime()
With grnd
\tx[0] = LoadTexture(#PB_Any, "a.jpg")
\ma[0] = CreateMaterial(#PB_Any, TextureID(\tx[0]))
ScrollMaterial(\ma[0], 0, -0.1, #PB_Material_Animated)
EndWith
With cloud
\tx[0] = LoadTexture(#PB_Any, "c.jpg")
\ma[0] = CreateMaterial(#PB_Any, TextureID(\tx[0]))
MaterialBlendingMode(\ma[0], #PB_Material_Add)
AddMaterialLayer(\ma[0], TextureID(\tx[0]), #PB_Material_Color)
ScrollMaterial(\ma[0], 0.001, 0.002, #PB_Material_Animated, 0)
ScrollMaterial(\ma[0], -0.001, 0.01, #PB_Material_Animated, 1)
EndWith
With pa\birds ; Mega simple flocking birds..No details or material switching is required due to distance
;other alternatives is multiple particle emitters or sprites.
\tx = CreateTexture(#PB_Any, 2, 2)
StartDrawing(TextureOutput(\tx))
Circle(1,1,1, $7777777)
StopDrawing()
\ma = CreateMaterial(#PB_Any, TextureID(\tx))
AddMaterialLayer(\ma, TextureID(\tx), #PB_Material_Replace)
\id = CreateParticleEmitter(#PB_Any, 800, 0, 800, #PB_Particle_Box, 1500, -220, -4000)
ParticleEmitterDirection(\id, -1, 0, 0)
ParticleMaterial(\id, MaterialID(\ma))
ParticleSize(\id, 10, 10)
ParticleEmissionRate(\id, 20)
ParticleTimeToLive(\id, 3, 20)
ParticleVelocity(\id, 0.01, 1)
EndWith
DisableParticleEmitter(pa\birds\id, #True) : pa\birds\disabled = #True
EndProcedure
Procedure.i CreateLandscape()
Protected tx.i
With grnd
\ms = CreatePlane(#PB_Any, 500, 500, 1, 1, 3500, 3500)
\id = CreateEntity(#PB_Any, MeshID(\ms), MaterialID(\ma[0]), 0, 0, 0)
ScaleEntity(\id, 100, 100, 100)
EndWith
With cloud
\ms = CreatePlane(#PB_Any, 500, 500, 1, 1, 1, 1)
\id = CreateEntity(#PB_Any, MeshID(\ms), MaterialID(\ma[0]), 0, 2500, 0)
ScaleEntity(\id, 150, 100, 150)
RotateEntity(\id, 180, 0, 0, #PB_Absolute)
EndWith
With Sun
\tx = LoadTexture(#PB_Any, "sun.jpg")
\ma = CreateMaterial(#PB_Any,TextureID(\tx))
MaterialBlendingMode(\ma, #PB_Material_Add)
SetMaterialColor(\ma, #PB_Material_SelfIlluminationColor, $00BFB4)
\id = CreateBillboardGroup(#PB_Any, MaterialID(\ma), 1000, 1000, 0, 0, 0)
AddBillboard(\id, 0, -1000, -5700)
\nod = CreateNode(#PB_Any, 0, 0, 0)
\lgt = CreateLight(#PB_Any, $00BFB4, 0, -1000, -5700, #PB_Light_Directional)
AttachNodeObject(\nod, BillboardGroupID(\id))
AttachNodeObject(\nod, LightID(\lgt))
EndWith
ProcedureReturn #True
EndProcedure
Procedure.i MakeSpritesReady()
sp\Blink[0] = CreateSprite(#PB_Any, ScreenWidth(), ScreenHeight())
StartDrawing(SpriteOutput(sp\Blink[0]))
Box(0, 0, ScreenWidth(), ScreenHeight(), $FFFFFF)
StopDrawing()
sp\Blink[1] = CreateSprite(#PB_Any, ScreenWidth(), ScreenHeight())
StartDrawing(SpriteOutput(sp\Blink[1]))
Box(0, 0, ScreenWidth(), ScreenHeight(), $0)
StopDrawing()
EndProcedure
Procedure.i DoSunStuff()
RotateNode(sun\nod, 0.015, 0, 0, #PB_Relative)
LightLookAt(sun\lgt, 0, 0, 0)
If NodePitch(sun\nod) > 2
If pa\birds\disabled = #True
DisableParticleEmitter(pa\birds\id, #False)
pa\birds\disabled = #False
EndIf
Skymaker()
If ElapsedMilliseconds() - bird > 500
Select Random(10)
Case 0 To 3
ParticleEmitterDirection(pa\birds\id, Randomf(-0.5, -0.1), RandomF(-0.2, 0.2), 0)
Case 4 To 6
ParticleEmitterDirection(pa\birds\id, Randomf(-0.5, -0.1), RandomF(-0.2, 0.2), 0)
Case 7 To 9
ParticleEmitterDirection(pa\birds\id, Randomf(-0.5, -0.1), RandomF(-0.2, 0.2), 0)
Default
ParticleEmitterDirection(pa\birds\id, Randomf(-0.5, -0.1), RandomF(-0.2, 0.2), 0)
EndSelect
bird = ElapsedMilliseconds()
EndIf
EndIf
EndProcedure
Procedure.f RandomF(min.f, Max.f, Res.i = 100000)
ProcedureReturn (Min + (Max - Min) * Random(Res) / Res)
EndProcedure
OpenWindow(0, 0, 0, 1024, 768, "The Event", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 1024, 768, #False, 0, 0)
Add3DArchive("texture", #PB_3DArchive_FileSystem)
Procret = SummerTime()
Procret = NuclearTime()
Procret = CreateLandscape()
Procret = MakeSpritesReady()
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 6, 1000)
CameraDirection(0, 0, 0, -1)
BeginEvent = ElapsedMilliseconds()
bird = ElapsedMilliseconds()
Repeat
Repeat : ev = WindowEvent() : If ev = #PB_Event_CloseWindow : Quit = 1 : EndIf : Until ev = 0
RenderWorld()
Select ElapsedMilliseconds() - BeginEvent
Case 0 To 35000
Procret = DoSunStuff()
Case 35100 To 35200
DisableParticleEmitter(pa\birds\id, #True)
Case 40000 To 43000 ;Nightmare begins
MoveEntity(rocket\id, 0, 0, -0.8, #PB_Relative)
MoveParticleEmitter(pa\rocketfire\id, 0, 0, -0.8, #PB_Relative)
Case 43300 To 44900
MoveEntity(rocket\id, 0, -0.01, -0.1, #PB_Relative)
MoveParticleEmitter(pa\rocketfire\id, 0, -0.01, -0.1, #PB_Relative)
ScrollMaterial(grnd\ma[0], 0, 0, #PB_Material_Fixed)
HideParticleEmitter(pa\rocketfire\id, #True)
HideEntity(rocket\id, #True)
Case 45000 To 45200
DisableParticleEmitter(pa\Atombase[0]\id, #False)
DisableParticleEmitter(pa\Atombase[1]\id, #False)
DisableParticleEmitter(pa\Atombase[2]\id, #False)
Case 45300 To 45500
DisplayTransparentSprite(sp\Blink[0], 0, 0, 255)
Case 47700 To 55900
DisableParticleEmitter(pa\AtomBloom[0]\id, #False)
DisableParticleEmitter(pa\AtomBloom[1]\id, #False)
DisableParticleEmitter(pa\AtomBloom[2]\id, #False)
DisableParticleEmitter(pa\AtomBloom[3]\id, #False)
Case 56000 To 56200
DisableParticleEmitter(pa\Atombase[0]\id, #True) : pa\Atombase[0]\disabled = #True
DisableParticleEmitter(pa\Atombase[1]\id, #True) : pa\Atombase[1]\disabled = #True
DisableParticleEmitter(pa\Atombase[2]\id, #True) : pa\Atombase[2]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[0]\id, #True): pa\AtomBloom[0]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[1]\id, #True): pa\AtomBloom[1]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[2]\id, #True): pa\AtomBloom[0]\disabled = #True
DisableParticleEmitter(pa\AtomBloom[3]\id, #True): pa\AtomBloom[1]\disabled = #True
DisableParticleEmitter(pa\AtomBlast[0]\id, #False) : pa\AtomBlast[0]\disabled = #False
DisableParticleEmitter(pa\AtomBlast[1]\id, #False) : pa\AtomBlast[1]\disabled = #False
Case 56500 To 63000
HideBillboardGroup(sun\id,#True)
CameraBackColor(0, 0)
RotateCamera(0, 0 + Cos(Random(2,1)), 0 + Sin(Random(2,1)), 0,#PB_Absolute)
Case 63010 To 67200
RotateCamera(0, Random(3,1), Random(2,1), Random(3,1), #PB_Relative)
Case 67500 To 68000
DisplaySprite(sp\Blink[1], 0, 0)
SetEntityMaterial(cloud\id, MaterialID(cloud\ma[1]))
SetEntityMaterial(grnd\id, MaterialID(grnd\ma[1]))
HideParticleEmitter(pa\AtomBlast[0]\id, #True)
HideParticleEmitter(pa\AtomBlast[1]\id, #True)
Case 68300 To 69099
DisplaySprite(sp\Blink[1], 0, 0)
DisableParticleEmitter(pa\Aftermath\id, #False)
RotateCamera(0, 0, 0, 0, #PB_Absolute)
Case 69300 To 71000
DisplaySprite(sp\Blink[1], 0, 0)
Case 71200 To 71400
For xsmoke = 0 To 9
DisableParticleEmitter(pa\groundsmoke[xsmoke]\id, #False)
Next xsmoke
Smokecheck = ElapsedMilliseconds()
Case 71100 To 105000
If ElapsedMilliseconds()-Smokecheck > 400
For xsmoke = 0 To 9
ParticleEmitterDirection(pa\groundsmoke[xsmoke]\id, randomf(-1,1),1,randomf(-1,1))
Next xsmoke
Smokecheck = ElapsedMilliseconds()
ParticleEmitterDirection(pa\Aftermath\id, randomf(-1,1), -1, randomf(-1,1))
EndIf
Case 106000 To 106500
Quit = 1
EndSelect
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1