'Activity module
Sub Process_Globals
Dim bird,birdAnimated,Walker(800) As Sprite
Dim NUMBLOCKS As Int = 12
Dim block,blocks(NUMBLOCKS) As Sprite
Dim timer1 As Timer
End Sub
Sub Globals
Dim gsv As GameSpriteView
Dim lblFPS As Label
Dim WalkerDir(Walker.Length) As Int
End Sub
Sub Activity_Create(FirstTime As Boolean)
gsv.Initialize("gsv")
Activity.AddView(gsv, 0, 0, 100%x, 100%y)
Activity.Title="GameSpriteView - Animation"
Activity.Color=Colors.Cyan
' set the virtual display wide enough to accomodate the set of blocks.
gsv.VirtualDisplaySize(NUMBLOCKS*64,0)
If FirstTime Then
' BIRD
' load the bird animation bitmap
bird.Bitmap=LoadBitmap(File.DirAssets,"bird_5x5_22frames.png")
bird.Position(50,30)
' copy the above bird settings into the animated bird sprite
birdAnimated.Copy(bird)
' set the animation sequence to use frames 0 to 20 only
' also, triger the bird to auto-animate
birdAnimated.AnimSequence(5,5,0,20,True,2,True)
' resize the animated bird to 2x bigger
birdAnimated.Size(birdAnimated.Width*2,birdAnimated.Height*2)
' move the animated birds anchor point to the middle
birdAnimated.MidAnchor
' set the animated birds postion on screen
birdAnimated.Position(gsv.VirtualWidth*0.64,gsv.VirtualHeight*0.8)
block.Bitmap=LoadBitmap(File.DirAssets,"block64x64.png")
block.Y=gsv.VirtualHeight-64
For i=0 To NUMBLOCKS-1
blocks(i).Copy(block) : blocks(i).X=i*64
Next
' WALKER
WalkerDir(0) = 2
Walker(0).Bitmap=LoadBitmap(File.DirAssets,"Walker_6.png")
Walker(0).AnimSequence(6,1,0,5,True,8,True)
Walker(0).Anchor(Walker(0).CenterX,Walker(0).Height)
Walker(0).X=Rnd(0, 400)
Walker(0).Y=block.Y
For i = 1 To Walker.Length - 1
WalkerDir(i) = 2
Walker(i).Copy(Walker(0))
Walker(i).AnimCellNumber=Rnd(0,100)
Walker(i).X=Rnd(0, 400)
Next
' Timer
timer1.Initialize("Timer1", 10)
End If
' add sprites to the game sprite view
gsv.Sprites.Add(bird)
gsv.Sprites.Add(birdAnimated)
For i=0 To NUMBLOCKS-1
gsv.Sprites.Add(blocks(i))
Next
For i = 0 To Walker.Length - 1
gsv.Sprites.Add(Walker(i))
Next
If gsv.IsHardwareAccelerated = False Then
Log("**Hardware acceleration not supported**")
End If
' FPS label
lblFPS.Initialize("")
lblFPS.TextSize = 18
lblFPS.TextColor = Colors.White
Activity.AddView(lblFPS, 0, 100%y - 30dip, 50dip, 30dip)
End Sub
Sub Timer1_Tick
' update the walkers position
For i = 0 To Walker.Length - 1
If Walker(i).X<-60 OR Walker(i).X>gsv.VirtualWidth+60 Then
WalkerDir(i)=-WalkerDir(i)
Walker(i).FlipX=(WalkerDir(i)<0)
End If
Walker(i).X=Walker(i).X+WalkerDir(i)
Next
gsv.Invalidate
lblFPS.Text = gsv.FPS
End Sub
Sub Activity_Resume
timer1.Enabled = True
End Sub
Sub Activity_Pause (UserClosed As Boolean)
timer1.Enabled = False
End Sub
Sub gsv_Touch (Action As Int, X As Float, Y As Float)
' need to covert the touch physical X/Y to virtual coordinates
birdAnimated.Position(gsv.VirtualX(X),gsv.VirtualY(Y))
End Sub