Microsoft Small Basic

Program Listing: WGF193
'Space Fall
'Thanks For "NaochanON" and "Jibba Jabba"
'Make date:18.04.2014 17:27
'"I blieve I can do it but somethings is wrong"
'Thanks For Answers!

make_shapes()
GraphicsWindow.KeyDown=onkeydown
GraphicsWindow.Title="Space Fall"

While "true"
While NN<1 ' Game ends when Hit NN=1
arrowX=arrowX+dx
wrongway() ' wall check
Shapes.move(SRocket,arrowX,400) ' Rocket move
Rocket_X=Shapes.GetLeft(SRocket) ' get rocket position -X
Rocket_Y=Shapes.GetTop(SRocket) ' get rocket position -Y
collision() ' collision check
Program.Delay(10)
Shapes.Remove(screen)
endWhile
Program.Delay(1000) ' next play starts from here
arrowX=0 ' to avoid double collision
MM=0
NN=0
endwhile

sub wrongway
If arrowX<0 Then
arrowX=10
dx=2
ElseIf arrowX>GraphicsWindow.Width-Rocket_W then
arrowX=GraphicsWindow.Width-Rocket_W-5
dx=-2
EndIf
endsub

Sub collision
For i =0 To Array.GetItemCount(smete)
Shapes.Move(smete[i], shapes.GetLeft(smete[i]), shapes.Gettop(smete[i])+fall[i]) '
HalfW=SizeW[i]/2
HalfH=SizeH[i]/2
RockX=Shapes.GetLeft(smete[i]) ' get mete(rock) position -X
RockY=Shapes.Gettop(smete[i]) ' get mete(rock) position -Y
If Math.Abs(Rocket_x+Rocket_W/2-(RockX+HalfW)) NN=NN+1
Sound.PlayClick()
elseIf shapes.Gettop(smete[i])>500 Then ' 500= window-height
MM=MM+1
GraphicsWindow.Title="score: "+MM
Shapes.Move(smete[i], Math.GetRandomNumber(640),-100-Math.GetRandomNumber(200) )
EndIf
EndFor
endsub

Sub onkeydown
If Text.IsSubText("Right:Left",GraphicsWindow.LastKey)="True" Then ' key= Right or Left
dx=(text.GetCharacterCode(GraphicsWindow.LastKey)-79) ' Right Key=82 Left Key =76 dx=+3 or -3
EndIf
EndSub

Sub make_shapes
GraphicsWindow.BrushColor="Black"
screen=Shapes.AddRectangle(GraphicsWindow.Width,GraphicsWindow.Height)
GraphicsWindow.BrushColor="RED"
texts=Shapes.AddText("Space Fall")
Shapes.Zoom(texts,3,3)
Shapes.Move(texts,275,200)
Program.Delay(1000)
back=shapes.addImage("http://lparchive.org/Gazillionaire-Deluxe/Update%2048/26-SPACE.png")
IRocket =ImageList.LoadImage("http://theponga.com/img/soon/rocket.png")
SRocket=Shapes.AddImage(IRocket)
Rocket_W=ImageList.GetWidthOfImage(IRocket)
Rocket_H=ImageList.GetheightOfImage(IRocket)
arrowX=200
'------------------------------------------------------------------------------------------------------------------------
path= "http://media.indiedb.com/cache/images/games/1/26/25272/thumb_300x150/"
Imete[0]=ImageList.LoadImage(path+"Asteroids_32x32_006.png")
Imete[1]=ImageList.LoadImage(path+"Asteroids_64x64_006.png")
Imete[2]=ImageList.LoadImage(path+"Asteroids_64x64_006.png")
Imete[3]=ImageList.LoadImage(path+"Asteroids_32x32_006.png")
Imete[4]=ImageList.LoadImage(path+"Asteroids_32x32_006.png")
Imete[5]=ImageList.LoadImage(path+"Asteroids_64x64_006.png")
Imete[6]=ImageList.LoadImage(path+"Asteroids_64x64_006.png")
Imete[7]=ImageList.LoadImage(path+"Asteroids_32x32_006.png")
For i= 0 To 7
SizeW[i]=ImageList.GetWidthOfImage(Imete[i])
SizeH[i]=ImageList.GetheightOfImage(Imete[i])
Smete[i]= Shapes.AddImage(Imete[i])
Shapes.Move(Smete[i],Math.GetRandomNumber(640),-100-Math.GetRandomNumber(200) )
fall[i]=(10+Math.GetRandomNumber(15))/5 ' falling speed
EndFor
EndSub