From c754439aecc45517865d38c750b76730fca0e7ed Mon Sep 17 00:00:00 2001 From: Ian C Date: Sun, 6 Mar 2005 02:18:38 +0000 Subject: Updated particles and added shield loss feedback --- shockwave.bb | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/shockwave.bb b/shockwave.bb index ce8273f..8250241 100644 --- a/shockwave.bb +++ b/shockwave.bb @@ -1,7 +1,7 @@ ; ; SHOCKWAVE (c) COPYRIGHT Ian Cowburn 2004 ; -; $Id: shockwave.bb,v 1.6 2005-03-06 01:40:21 ianc Exp $ +; $Id: shockwave.bb,v 1.7 2005-03-06 02:18:38 ianc Exp $ ; Include "gfx/font.bb" @@ -14,6 +14,8 @@ Type Particle Field id Field a# Field ai# + Field spin# + Field dx#,dy#,dz# Field life End Type @@ -502,6 +504,13 @@ Repeat MAX_SPEED=MAX_SPEED-0.1 NewCameraSpriteText(Str$(MAX_SPEED),$ff0000,0,5,EntityZ(camera)+50,-0.2,1,0.005) EndIf + If KeyHit(64) + For ast.Asteroid=Each Asteroid + FreeEntity ast\id + Delete ast + Next + NewCameraSpriteText("DELALL",$ff0000,0,5,EntityZ(camera)+50,-0.2,1,0.005) + EndIf If KeyHit(65) SubShield(shield) NewCameraSpriteText("NOSHLD",$ff0000,0,5,EntityZ(camera)+50,-0.2,1,0.005) @@ -1002,6 +1011,7 @@ Function UpdateAsteroids() If hit_ship SubShield(1) + NewParticleMove(particle,EntityX(ship),EntityY(ship),EntityZ(ship)-1,10,2,Rnd(-2,2),Rnd(-2,2),0) ElseIf hit_sw Or a\split If Not dead @@ -1012,8 +1022,10 @@ Function UpdateAsteroids() If Not a\split EmitSound(pop_sfx,a\id) + dz#=0.1 For f=10 To 100 Step 10 - NewAlphaParticle(particle,EntityX(a\id),EntityY(a\id),EntityZ(a\id)-f,1.0,-0.01) + NewAlphaParticleMove(particle,EntityX(a\id),EntityY(a\id),EntityZ(a\id)-f,1.0,-0.01,f/10,0,0,dz) + dz=dz+0.1 Next EndIf @@ -1233,19 +1245,34 @@ Function UpdateParticles() p\life=p\life-1 p\a=p\a+p\ai EntityAlpha p\id,p\a + TurnEntity p\id,0,0,p\spin + MoveEntity p\id,p\dx,p\dy,p\dz EndIf Next End Function -Function NewParticle(base,x#,y#,z#,life) +Function NewParticle(base,x#,y#,z#,life,spin#) + NewParticleMove(base,x,y,z,life,spin,0,0,0) +End Function + +Function NewParticleMove(base,x#,y#,z#,life,spin#,dx#,dy#,dz#) p.Particle=New Particle p\id=CopyEntity(base) ShowEntity p\id PositionEntity p\id,x,y,z p\life=life + p\a=1.0 + p\dx=dx + p\dy=dy + p\dz=dz + p\spin=spin +End Function + +Function NewAlphaParticle(base,x#,y#,z#,a#,ai#,spin#) + NewAlphaParticleMove(base,x,y,z,a,ai,spin,0,0,0) End Function -Function NewAlphaParticle(base,x#,y#,z#,a#,ai#) +Function NewAlphaParticleMove(base,x#,y#,z#,a#,ai#,spin#,dx#,dy#,dz#) p.Particle=New Particle p\id=CopyEntity(base) ShowEntity p\id @@ -1254,6 +1281,10 @@ Function NewAlphaParticle(base,x#,y#,z#,a#,ai#) p\life=9999999 p\a=a p\ai=ai + p\dx=dx + p\dy=dy + p\dz=dz + p\spin=spin End Function @@ -1561,6 +1592,7 @@ Function Menu() HudTextCentre(200,"LARGEST LOST CHAIN",$ffffff) AddScore(0) + start_bonus=(start_level-1)^2*1000 ti=MilliSecs() -- cgit v1.2.3