【问题标题】:Pygame, choppy movementPygame,波涛汹涌的运动
【发布时间】:2015-12-20 16:09:55
【问题描述】:

所以我注意到角色只有在我的速度大于 1 并且是整数时才会移动,但问题是为什么我不能使用 move_ip() 函数让我的角色移动速度低于 1 并且介于 1 之间和 0?。

这是我使用的代码:

def Physics():
    for k, v in enumerate(ENTITIES):
        vel     = ENTITIES[k].GetVelocity()
        pos     = ENTITIES[k].GetPos()

        vel[1] = vel[1] + 0.1
        ENTITIES[k].Entity.move_ip(vel)

【问题讨论】:

    标签: python-3.x pygame


    【解决方案1】:

    Rect 类通常用于描述屏幕的一个区域,像素是整数值,因此Rect 类的属性也是整数(你不能在(1.3, 5.7) 位置绘制东西,因为该位置不会出现在屏幕上)。

    如果您想跟踪子像素位置,例如4.51.2,您必须将其存储在您类的另一个变量/字段中。

    【讨论】:

    • 我不在 rect 类中存储子像素位置。我有一个类 self.Entity = rect 对象,我的位置存储在 self.Position
    • 如果您要更新另一个变量中的位置,请将 x 和 y 舍入并设置 rect.center 属性而不是使用 move_ip
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2012-02-29
    • 2015-11-07
    相关资源
    最近更新 更多