【问题标题】:How to move a sprite in increments but slowly如何以增量但缓慢地移动精灵
【发布时间】:2011-10-08 06:45:40
【问题描述】:

我正在使用 XNA 在 C# 中开发一个非常简单的蛇游戏。问题是我希望精灵以增量方式移动,但不是尽可能快。由于精灵是 16x16 像素,它以 16 像素的增量移动。例如,如果当前方向是正确的,则执行此行:

playerPosition.X += 16;

这很好用,但它的移动速度令人难以置信。我将如何让它移动得更慢?就像每 1/2 秒 16 个像素。

【问题讨论】:

    标签: c# xna


    【解决方案1】:

    自从我上次使用 XNA 以来已经有很长时间了,但是根据我在游戏循环中的记忆,当您执行操作时,您可以访问一个属性,该属性基本上是自上次操作以来经过的时间。您应该使用它并减少 16 像素的移动,使其仅在第二秒的那部分移动。

    大多数情况下,您只需除以 60 并将其用作您的新移动速度,并且非常安全。因此,如果您想每秒移动 16 个像素,则每帧像素移动为 16/60。

    【讨论】:

      【解决方案2】:

      您可以保留一个“自上次移动以来的时间”的内部计数器,每帧都添加到它,一旦超过指定的阈值,就进行移动并重置计数器。

      Game.Update 传入一个 GameTime 对象,您可以使用该对象来确定自上次调用 Update 以来经过的时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-20
        • 2014-05-09
        • 2016-05-13
        • 2016-04-26
        相关资源
        最近更新 更多