如果您测试代码,将挡板一直推到屏幕顶部,然后让它移动,那么挡板会向下跳几个像素。而我似乎无法弄清楚如何解决这个问题。我想它与纹理有关。
编辑:谢谢
答案 0 :(得分:1)
这就是:
你按住了键。
这些功能会检查和/或调整当前Y
。
该功能会根据您的按键更新当前Y
。
屏幕上显示当前Y
。
你放开钥匙。
这些功能会检查和/或调整当前Y
。
屏幕上显示更正后的Y
,导致之前的Y
跳转。
因此,您需要在检查之前更新当前的Y
,而不是之后。
protected override void Update(GameTime gameTime)
{
// Allow the game to exit.
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// Update the paddles according to the keyboard.
if (Keyboard.GetState().IsKeyDown(Keys.Up))
PongPaddle1.Y -= paddleSpeed;
if (Keyboard.GetState().IsKeyDown(Keys.Down))
PongPaddle1.Y += paddleSpeed;
// Update the paddles according to the safe bounds.
var safeTop = safeBounds.Top - 30;
var safeBottom = safeBounds.Bottom - 70;
PongPaddle1.Y = MathHelper.Clamp(PongPaddle1.Y, safeTop, safeBottom);
PongPaddle2.Y = MathHelper.Clamp(PongPaddle2.Y, safeTop, safeBottom);
// Allow the base to update.
base.Update(gameTime);
}