0

http://pastebin.com/YTiNw7rX

如果您测试代码,将桨一直推到屏幕顶部,然后放开,桨会向下跳几个像素。而且我似乎无法弄清楚如何解决这个问题。我想它与纹理有关。

编辑:谢谢

4

1 回答 1

1

这就是发生的事情:

  1. 你拿着钥匙。

  2. 这些功能检查和/或调整电流Y

  3. Y该功能根据您的按键更新电流。

  4. 电流Y显示在屏幕上。

  5. 你放开钥匙。

  6. 这些功能检查和/或调整电流Y

  7. 更正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);
}
于 2012-04-28T14:52:37.193 回答