When I run below code my expected output is that the player should continuosly animating and when user taps on screen the player should jump. My player's frames are diffrent and jump frames are different. I am calling frames on mouse left button click. All frames are processed but its too fast so the animation is not visible.
private void OnUpdate(object sender, GameTimerEventArgs e)
{
float elapsed = (float)e.ElapsedTime.TotalSeconds;
timer5 -= elapsed;
TouchPanel.EnabledGestures = GestureType.Tap;
TouchCollection touches = TouchPanel.GetState();
MouseState mousestate = Mouse.GetState();
//Texture.position += velocity;
//if (rect.Contains(new Microsoft.Xna.Framework.Point(mousestate.X, mousestate.Y)) && mousestate.LeftButton == ButtonState.Pressed)
if (mousestate.LeftButton==ButtonState.Pressed)
{
for (int i = 0; i < 32; i++)
{
jump();
jumpframe++;
if (jumpframe > 24)
{
jumpframe = 0;
}
System.Diagnostics.Debug.WriteLine("currentframe:"+ jumpframe);
}
}
if (timer5 <= 0)
{
playerr();
currentframe++;
if (currentframe > 24)
{
currentframe = 0;
}
timer5 = TIME_BET_FRAME;
}
}
private void OnDraw(object sender, GameTimerEventArgs e)
{
SharedGraphicsDeviceManager.Current.GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
//level.Draw(spriteBatch);
rect2 = new Rectangle(0, 0, 960, 620);
rect = new Rectangle(0, 0, 420, 300);
spriteBatch.Draw(Texture.player[currentframe], Texture.position, Color.White);
spriteBatch.Draw(Texture.jumpplayer[jumpframe], Texture.jumpposition, Color.White);
spriteBatch.Draw(Texture.jumpbtn, Texture.rect, Color.White);
spriteBatch.DrawString(font, "Score", new Vector2(10, 0), Color.Gold);
spriteBatch.End();
}
public void jump()
{
Texture.jumpposition.X = 10;
Texture.jumpposition.Y = 243;
Texture.position.X = -400;
Texture.position.Y = 243;
}
public void playerr()
{
Texture.position.X = 10;
Texture.position.Y = 243;
Texture.jumpposition.X = -400;
Texture.jumpposition.Y = 243;
}