pygame生涩运动一般

时间:2015-11-07 15:24:29

标签: pygame smooth motion

我在pygame上遇到了很大的问题。即使代码尽可能简单,运动总是有点不稳定。尝试运行这个简单的例子,它将矩形移动1个像素,速度为60 FPS:

import sys
import pygame
pygame.init()

display = pygame.display.set_mode((640, 480), pygame.FULLSCREEN)
clock = pygame.time.Clock()
FPS = 60

def motion_test():

    rect = pygame.rect.Rect((0, 240), (40, 40))

    while 1:

        # clear display
        display.fill((0, 0, 0))

        # check quit
        for e in pygame.event.get():
            if (e.type == pygame.QUIT or
                e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE):
                pygame.quit()
                sys.exit()

        # move the rect by 1 pixel
        rect.x += 1
        if rect.x >= 640:
            rect.x = 0

        # draw the rect and flip the display
        pygame.draw.rect(display, (255, 0, 0), rect)
        pygame.display.flip()

        # tick the clock
        clock.tick(FPS)


if __name__ == "__main__":
    motion_test()

无论我测试什么硬件,矩形都在移动生涩。每隔半秒左右,就会跳起来#34;一点点。它不是平稳运动。

拜托,这让我很生气......有谁知道这会导致什么?它是pygame本身,还是Python的垃圾收集,或操作系统,还是什么?有任何想法吗?你看到同样的例子吗?

(Win7 64bit,Pygame 1.9.1,Python 2.7.3)

**编辑:

我发现pygame时钟对象在限制为60 FPS时不是很准确。我现在用pyglet时钟取代了pygame时钟,现在它好多了。仍然不完美,但更好。

0 个答案:

没有答案