【发布时间】:2015-05-03 21:48:07
【问题描述】:
好的,假设您正在玩自上而下的游戏。您按W 和D 以朝右方向移动。现在你只想向右走,所以你释放W 键。人们会期望您随后改变方向并向右行驶,但相反,您会继续直立。我能做些什么来解决这个问题?
这是我的代码:
if (kb.IsKeyDown(Keys.W) || kb.IsKeyDown(Keys.A) || kb.IsKeyDown(Keys.S) || kb.IsKeyDown(Keys.D))
{
if (kb.IsKeyDown(Keys.W))
velocity.Y = -movespeed;
else if (kb.IsKeyDown(Keys.A))
velocity.X = -movespeed;
else if (kb.IsKeyDown(Keys.S))
velocity.Y = movespeed;
else if (kb.IsKeyDown(Keys.D))
velocity.X = movespeed;
else if (kb.IsKeyDown(Keys.W) && kb.IsKeyDown(Keys.D))
{
velocity.X = movespeed;
velocity.Y = -movespeed;
}
else if (kb.IsKeyDown(Keys.W) && kb.IsKeyDown(Keys.A))
{
velocity.X = -movespeed;
velocity.Y = -movespeed;
}
else if (kb.IsKeyDown(Keys.S) && kb.IsKeyDown(Keys.D))
{
velocity.X = movespeed;
velocity.Y = movespeed;
}
else if (kb.IsKeyDown(Keys.S) && kb.IsKeyDown(Keys.A))
{
velocity.X = -movespeed;
velocity.Y = movespeed;
}
}
else
velocity *= .9f;
position += velocity;
【问题讨论】:
标签: c# xna game-physics