I have a problem. I'm making a side scrolling shooter, and when I move sideways and jump, everythings fine. However, if I keep holding the spacebar after the character has jumped, the animation of the character will stop. Any suggestions? I'm including my code.
'-------------------------------------------------------------------GAME SETUP Graphics 510,300,0 Global Gravity:Float = 0.60 Global Position:Int = 2 Global Jumped:Int = 0 Local Background:TBackground = TBackground.Create("background.png",0,0) Local Player:THero = THero.Create("guywalking.png",15,142) '--------------------------------------------------------------------MAIN LOOP Repeat Cls DrawText "The Big One",200,250 DrawText "For MacOS X",200,262 Background.DrawSelf() Player.UpdateState() Player.DrawSelf() Flip Until KeyDown(KEY_ESCAPE) Or AppTerminate() End '----------------------------------------------------------------------TYPES Type THero Field X:Int=15 Field Y:Int=142 Field Speed:Int=3 Field Frame:Int=0 Field AnimSpeed:Int=3 Field JumpHeight:Float=10.00 Field JumpYVel:Float Field Image:TImage Function Create:THero(File:String,xstart:Int,ystart:Int) Local WalkImage:THero=New THero WalkImage.X=xstart WalkImage.Y=ystart WalkImage.Frame=animframe AutoImageFlags MASKEDIMAGE SetMaskColor 255,255,255 WalkImage.image=LoadAnimImage(LoadBank(File),64,64,0,12,MASKEDIMAGE) If WalkImage.image=Null Print "Image file not found. Quitting..." End End If Return WalkImage End Function Method DrawSelf() DrawImage Image,X,Y,Frame End Method Method UpdateState() If KeyDown(KEY_LEFT) And Not KeyDown(KEY_RIGHT) Position = 1 If X>-15 Then X:- Speed If AnimSpeed < 0 And Not KeyDown(KEY_SPACE) If Frame = 2 And Y = 142 Then Frame = 3 Else Frame = 2 AnimSpeed = 3 ElseIf KeyDown(KEY_SPACE) And Not KeyDown(KEY_LEFT) Frame = 11 Else AnimSpeed:-1 EndIf EndIf If KeyDown(KEY_RIGHT) Position = 2 If X<460 Then X:+ Speed If AnimSpeed < 0 And Not KeyDown(KEY_SPACE) If Frame = 1 And Y = 142 Then Frame = 0 Else Frame = 1 AnimSpeed = 3 ElseIf KeyDown(KEY_SPACE) And Not KeyDown(KEY_RIGHT) Frame = 6 Else AnimSpeed:-1 EndIf EndIf If Position = 1 And KeyHit(KEY_SPACE) If Y = 142 JumpYVel = JumpHeight Frame = 11 Jumped = 1 EndIf EndIf If Position = 2 And KeyHit(KEY_SPACE) If Y = 142 JumpYVel = JumpHeight Frame = 6 Jumped = 2 EndIf EndIf If Jumped = 1 JumpYVel:-Gravity Y:-JumpYVel If Y => 142 Then JumpYVel = 0.0; Y = 142 If Y=142 Then Frame = 3; Jumped = 0 EndIf If Jumped = 2 JumpYVel:-Gravity Y:-JumpYVel If Y => 142 Then JumpYVel = 0.0; Y = 142 If Y=142 Then Frame = 0; Jumped = 0 EndIf End Method End Type Type TBackground Field X:Int Field Y:Int Field Image:Timage Function Create:TBackground(File:String,xstart:Int,ystart:Int) Local Background:TBackground=New TBackground Background.X = xstart Background.Y = ystart Background.image = LoadImage(LoadBank(File)) If Background.image=Null Print "Image file not found. Quitting..." End End If Return Background End Function Method DrawSelf() DrawImage Image,X,Y,Frame End Method End Type