Space Swarm by MonoCoder23rd Apr 2006 17:50
|
---|
Summary 2D game. Shoot stuff. Description Old game from ages ago, decided to spend half an hour finishing it and such. enjoy. shoot the aliens and shrink them to death while protecting your base shields. Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com Rem Project: Space Swarm Rem Created: 21/02/2005 16:09:11 Rem By Thomas Knowles. Yay. Sync On Sync Rate 0 Fastsync Hide mouse Backdrop Off Dim EData(5000,2) Dim WinDisplay(200,6) Draw to Front Load Image "AlienLarge.bmp",1,1 Load Image "AlienMedium.bmp",2,1 Load Image "AlienSmall.bmp",3,1 Load Image "Base.bmp",4,1 Load Image "BaseShield.bmp",5,1 Sprite 1,288,447,4 Sprite 2,272,431,5 Sprite 2,320,480,5 Offset sprite 2,48,48 For n=3 to 10 Sprite n,rnd(570),rnd(410),1 Set sprite n,0,1 EData(n,1)=rnd(1) EData(n,2)=rnd(1) If EData(n,1)=0 then Mirror Sprite n Next n TotalEnemies=8 NextSprite=11 Shields=20 shieldangle#=0 Do Set cursor 0,0 Print "ENEMIES REMAINING = ",TotalEnemies Print "SCORE = ",Score Print "SHIELDS = ",Shields Inc EnemyMove If EnemyMove=2 For n=3 to 5000 If Sprite Exist(n)>0 OldDir=EData(n,1) speed=1+(Sprite Image(n)/3) If EData(n,1)=0 then Sprite n,Sprite x(n)-speed,Sprite y(n),Sprite Image(n) else Sprite n,Sprite x(n)+speed,Sprite y(n),Sprite Image(n) If EData(n,2)=0 then Sprite n,Sprite x(n),Sprite y(n)-speed,Sprite Image(n) else Sprite n,Sprite x(n),Sprite y(n)+speed,Sprite Image(n) If Sprite x(n)<0 then EData(n,1)=1 : Sprite n,1,Sprite y(n),Sprite Image(n) If Sprite y(n)<0 then EData(n,2)=1 : Sprite n,Sprite x(n),1,Sprite Image(n) If Sprite x(n)>639-Sprite Width(n) then EData(n,1)=0 : Sprite n,638-Sprite Width(n),Sprite y(n),Sprite Image(n) If Sprite y(n)>479-Sprite Height(n) then EData(n,2)=0 : Sprite n,Sprite x(n),478-Sprite Height(n),Sprite Image(n) If EData(n,1)<>OldDir then Mirror Sprite n If Invulnerable=0 and Sprite x(n)>Sprite x(1)-Sprite Width(n) and Sprite y(n)>Sprite y(1)-Sprite height(n) and Sprite x(n)+Sprite Width(n)<Sprite x(1)+Sprite Width(1) then invulnerable=20 : Shields=Shields-1 If Mouseclick()=1 and (MClick=0 or MClick=2)=1 If Mousex()>Sprite x(n)-20 and Mousey()>Sprite y(n)-20 and Mousex()<Sprite x(n)+Sprite Width(n)+20 and Mousey()<Sprite y(n)+Sprite Height(n)+20 If Sprite Image(n)<3 OldDir=EData(n,1) If Sprite Image(n)=1 then Score=Score+20 If Sprite Image(n)=2 then Score=Score+40 Sprite NextSprite,Sprite x(n)+Sprite Width(n),Sprite y(n),Sprite Image(n)+1 Sprite NextSprite+1,Sprite x(n),Sprite y(n)+Sprite Height(n),Sprite Image(n)+1 Sprite NextSprite+2,Sprite x(n)+Sprite Width(n),Sprite y(n)+Sprite Height(n),Sprite Image(n)+1 Sprite n,Sprite x(n),Sprite y(n),Sprite Image(n)+1 EData(NextSprite,1)=1 : EData(NextSprite,2)=0 EData(NextSprite+1,1)=0 : EData(NextSprite+1,2)=0 EData(NextSprite+2,1)=1 : EData(NextSprite+2,2)=0 EData(n,1)=0 : EData(n,2)=0 If EData(n,1)=0 and EData(n,1)<>OldDir then Mirror Sprite n If EData(nextsprite,1)=0 then Mirror Sprite nextsprite If EData(nextsprite+1,1)=0 then Mirror Sprite nextsprite+1 If EData(nextsprite+2,1)=0 then Mirror Sprite nextsprite+2 Set sprite n,0,1 Set sprite nextsprite,0,1 Set sprite nextsprite+1,0,1 Set sprite nextsprite+2,0,1 NextSprite=NextSprite+3 TotalEnemies=TotalEnemies+3 Else Delete Sprite n TotalEnemies=TotalEnemies-1 Score=Score+60 Endif Endif Mx=Mousex() My=Mousey() LineShow=40 Blastr=0 MClick=2 Endif Endif Next n EnemyMove=0 Endif If MClick=2 then MClick=1 If Mouseclick()=0 then MClick=0 If Invulnerable>0 then dec Invulnerable If Shields=>0 then Set Sprite Alpha 2,Shields*8 shieldangle#=wrapvalue(shieldangle#+1) stretch sprite 2,100+(cos(shieldangle#)*10),100+(sin(shieldangle#)*5) Rem Basic2D Display If Lineshow>0 Line 320,456,Mx,My Circle Mx,My,Blastr inc Blastr,1 dec Lineshow Endif line 0,0,639,0 line 639,0,639,479 line 639,479,0,479 line 0,479,0,0 Circle Mousex(),Mousey(),10 If Shields=<0 then goto Game_over If TotalEnemies=<0 then goto Game_Won Sync cls 0 Loop Game_Over: Repeat For n=3 to 5000 If Sprite Exist(n)>0 and EShot#=0 If rnd(500)=1 EShot#=30 Beamx=Sprite x(n)+(Sprite Width(n)/2) Beamy=Sprite y(n)+(Sprite Width(n)/2) targetx=300+rnd(40) targety=455+rnd(10) Endif Endif Next n Center Text Screen Width()/2,Screen Height()/2,"GAME OVER! PRESS ENTER" If EShot#>0 Line targetx,targety,Beamx,Beamy Circle targetx,targety,31-EShot# Dec EShot#,0.5 Endif n=3+rnd(4997) If Sprite Exist(n)>0 then Line 300+rnd(40),455+rnd(10),Sprite x(n),Sprite y(n) Sync cls 0 Until Returnkey()=1 Ink rgb(255,40,40),0 For n=1 to 500 For o=3 to 5000 If Sprite Exist(o)>0 If Sprite x(o)<320 then Sprite o,Sprite x(o)-2,Sprite y(o)-1,Sprite image(o) If Sprite x(o)=>320 then Sprite o,Sprite x(o)+2,Sprite y(o)-1,Sprite image(o) Endif Next o For p=1 to n Circle 320,460,p Next p Sync cls 0 Next n END Game_Won: Repeat For n=1 to 200 If rnd(60)=0 and windisplay(n,3)=0 windisplay(n,1)=rnd(640) windisplay(n,2)=rnd(480) windisplay(n,3)=1 windisplay(n,4)=rnd(255) windisplay(n,5)=rnd(255) windisplay(n,6)=rnd(255) Endif If windisplay(n,3)>0 windisplay(n,3)=windisplay(n,3)+1*1.1 If windisplay(n,3)=>500 then windisplay(n,3)=0 Ink rgb(windisplay(n,4),windisplay(n,5),windisplay(n,6)),0 Circle windisplay(n,1),windisplay(n,2),windisplay(n,3) Endif Next n Center Text Screen Width()/2,Screen Height()/2,"YOU WIN! PRESS ENTER" Sync cls 0 Until Returnkey()=1 END |