Tanks Game 2-player
-
Tuesday, December 18, 2012 8:56 PM
Here is another game that I made using small basic. I named it Tanks game. It is a 2-player game you can play with one of you friends.
I am so thankful to Litdev for his awesome extensions. I used his extension to use an animated image (the explosion of the tanks) in my game.
At the beginning each player places their tanks anywhere on theri own land (lands are seperated with the red line), and then starting from the top player you click somewhere in you own land. Once you click there the corresponding point on the other side of the red line willl be shot. If there is enemy's tank there the tank would explode.
You can download the game from here (at the top of the page) or from my dropbox account: Tanks Game
Or you can download it from Microsoft Technet Gallery: Tanks Game on Technet Gallery
All my previous projects are also on my personal webblog: My programs and Games
Again it does not run with silverlight because the images used in the game are read from harddrive. But here is the source code you can try on your own computer:
GraphicsWindow.Width=500 GraphicsWindow.Height=500 map= ImageList.LoadImage(Program.Directory+"/pics/map.jpg") GraphicsWindow.DrawResizedImage(map, 0, 0, 510, 510) 'startover: GraphicsWindow.FontName="Arial" GraphicsWindow.BrushColor= "Black" GraphicsWindow.FontSize="12" GraphicsWindow.DrawText(330, 0, "Developed by behnam Azizi") vehicle1=ImageList.LoadImage(Program.Directory+"/pics/Tank1.png") vehicle2=ImageList.LoadImage(Program.Directory+"/pics/Tank2.png") For i=0 to 10 shapeA[i]= Shapes.AddImage(vehicle1) Shapes.Move(shapeA[i], -50, -50) endfor For j=0 to 10 shapeB[j]= Shapes.AddImage(vehicle2) Shapes.Move(shapeB[j], 0, -50) endfor j=0 i=0 GraphicsWindow.CanResize="False" GraphicsWindow.MouseDown=handleMouse GraphicsWindow.PenColor="brown" Shapes.AddLine(0,250,510,250) GraphicsWindow.PenColor="transparent" GraphicsWindow.KeyDown= handlekey Sub handleKey If GraphicsWindow.LastKey="Q" Then GraphicsWindow.PenColor="black" ElseIf GraphicsWindow.LastKey="W" then GraphicsWindow.PenColor="transparent" EndIf EndSub Sub rocket ammo=Shapes.AddImage(ammo) Shapes.Animate(ammo, Math.GetRandomNumber(300), Math.GetRandomNumber(300), 1000) x=Shapes.GetLeft(ammo) y= Shapes.GetTop(ammo) If xpos>x And xpos<x+40 And ypos<500-y And ypos>460-y Then Shapes.Animate(ammo, math.GetRandomNumber(500), 540, 300) EndIf EndSub sub handleMouse xpos= GraphicsWindow.MouseX ypos= GraphicsWindow.MouseY 'If t=20 Then ' rocket() ' EndIf If t<=8 And ypos<250 Then start1() t=t+1 ElseIf t<=17 and t>=9 and ypos>250 then start2() t=t+1 ElseIf t>=18 then 'Shapes.HideShape(tankA[2]) If Math.Remainder(t, 2)=0 And ypos<250 Then Player1() winner() t=t+1 ElseIf Math.Remainder(t, 2)=1 And ypos>250 Then Player2() winner() t=t+1 EndIf EndIf EndSub Sub winner For i=0 To 8 If A[i]= "69" Then p=p+1 EndIf If B[i]="69" then q=q+1 EndIf EndFor If p=9 Then 'Sound.play(Program.Directory+"sounds/bomb.mp3") GraphicsWindow.ShowMessage("Player 2 wins!","Game Over!") CLS() ElseIf q=9 then 'Sound.play(Program.Directory+"sounds/bomb.mp3") GraphicsWindow.ShowMessage("Player 1 wins!","Game Over!") CLS() EndIf p=0 q=0 EndSub Sub Player1 Sound.Stop(Program.Directory+"/sounds/Tick.mp3") Sound.Play(Program.Directory+"/sounds/Tick.mp3") Shapes.HideShape(lineA) Shapes.HideShape(lineB) Error="True" lineA=Shapes.AddLine(0,ypos,500, ypos) lineB=Shapes.AddLine(0,500-ypos,500, 500-ypos) For j=0 To 8 x= Shapes.GetLeft(tankB[j]) y= Shapes.GetTop(tankB[j]) If xpos>x And xpos<x+40 And ypos<500-y And ypos>460-y Then Sound.Stop(Program.Directory+"/sounds/Bomb.mp3") Sound.Play(Program.Directory+"/sounds/Bomb.mp3") explode = LDShapes.AddAnimatedImage(Program.Directory + "\pics\anim.png", "False",4, 4) Shapes.Move(explode, Shapes.GetLeft(tankB[j]), Shapes.GetTop(tankB[j])) Shapes.Animate(tankB[j], math.GetRandomNumber(500), 540, 300) ' Shapes.HideShape(tankB[j]) B[j]="69" Error="False" EndIf EndFor Shapes.HideShape(text) text=Shapes.AddText("Player 2") Shapes.Move(text, 0, 0) If Error="True" Then Sound.Stop(Program.Directory+"/sounds/Error.mp3") Sound.Play(Program.Directory+"/sounds/Error.mp3") 'Shapes.AddImage(gunshot) ' Shapes.Move(gunshot, xpos, ypos) EndIf EndSub Sub Player2 Sound.Stop(Program.Directory+"/sounds/Tick.mp3") Sound.Play(Program.Directory+"/sounds/Tick.mp3") Shapes.HideShape(lineA) Shapes.HideShape(lineB) Error="True" lineA =Shapes.AddLine(0,ypos,500, ypos) lineB=Shapes.AddLine(0,500-ypos,500, 500-ypos) For i=0 To 8 x= Shapes.GetLeft(tankA[i]) y= Shapes.GetTop(tankA[i]) If xpos>x And xpos<x+40 And ypos<500-y And ypos>460-y Then Sound.Stop(Program.Directory + "/sounds/Bomb.mp3") Sound.Play(Program.Directory + "/sounds/Bomb.mp3") explode = LDShapes.AddAnimatedImage(Program.Directory + "\pics\anim.png", "False",4, 4) Shapes.Move(explode, Shapes.GetLeft(tankA[i]), Shapes.GetTop(tankA[i])) Shapes.Animate(tankA[i], Math.GetRandomNumber(500), -40, 300) A[i]="69" Error="False" EndIf Shapes.HideShape(text) text=Shapes.AddText("Player 1") Shapes.Move(text, 0, 0) EndFor If Error="True" Then Sound.Stop(Program.Directory+"/sounds/Error.mp3") Sound.Play(Program.Directory+"/sounds/Error.mp3") 'Shapes.Move(gunshot, xpos, ypos) EndIf EndSub Sub start1 Sound.Stop(Program.Directory+"/sounds/Tick.mp3") Sound.Play(Program.Directory+"/sounds/Tick.mp3") 'R = Math.GetRandomNumber(2) ' If R=1 Then tankA[i] = shapeA[i] ' ElseIf R=2 then ' tankA[i]=Shapes.AddEllipse(40, 70) 'EndIf Shapes.Move(tankA[i], 250, -40) Shapes.Animate(tankA[i], xpos-20, ypos-20, 500) i=i+1 EndSub Sub start2 Sound.Stop(Program.Directory+"/sounds/Tick.mp3") Sound.Play(Program.Directory+"/sounds/Tick.mp3") ' R = Math.GetRandomNumber(2) 'If R=1 Then tankB[j] = shapeB[j] ' ElseIf R=2 then ' tankB[i]=Shapes.AddEllipse(40, 70) ' EndIf Shapes.Move(tankB[j], 250, -40) Shapes.Animate(tankB[j], xpos-20, ypos-20, 500) j=j+1 EndSub Sub CLS p=0 q=0 GraphicsWindow.Clear() For i=0 To 8 tankA[i]=0 tankB[i]=0 EndFor 'Program.Delay(2000) Program.End() EndSub
- Edited by Behnam Azizi Tuesday, December 18, 2012 8:59 PM
- Changed Type Behnam Azizi Wednesday, December 19, 2012 12:56 AM
- Changed Type Behnam Azizi Wednesday, December 19, 2012 1:04 AM
- Changed Type Behnam Azizi Wednesday, December 19, 2012 1:04 AM
- Changed Type Behnam Azizi Wednesday, December 19, 2012 1:05 AM general
All Replies
-
Tuesday, December 18, 2012 11:37 PMOwner
Great job! Thanks for putting the game on TechNet Gallery. I'd like to build a collection of games there so that we know where to find them.
I featured Tanks Game on the blog here: http://blogs.msdn.com/b/smallbasic/archive/2012/12/18/tank-game-small-basic-featured-program.aspx
Can you change this to a Discussion thread?
Thanks!
Ed Price (a.k.a User Ed), SQL Server Customer Program Manager (Blog, Twitter, Wiki)
- Proposed As Answer by Ed Price - MSFTMicrosoft Employee, Owner Tuesday, December 18, 2012 11:40 PM
-
Wednesday, December 19, 2012 1:03 AM
Thank you Ed,
Actually i hadn't noticed there is such an option there. Now it is a general discussion post. I have also submitted the final version of the Breaker Game to Technet Gallery. Here is the link and describtion: Breaker V2.0 Ultimate on Technet Gallery

