我想知道这是pygame的限制还是我做错了。当我在屏幕上移动图像时,帧速率是可变且缓慢的。我真的很想让它顺利。我的代码是:
screen = pygame.display.set_mode((1280, 720), pygame.FULLSCREEN)
pygame.key.set_repeat(1, 1)
map = pygame.image.load('test_2000x1333.jpg')
camera_x = -320
camera_y = -250
clock = pygame.time.Clock()
game_running = True
while game_running:
for event in pygame.event.get():
key_pressed = pygame.key.get_pressed()
if key_pressed[pygame.K_w]:
if camera_y < 0:
camera_y += 2
if key_pressed[pygame.K_s]:
if camera_y > -550:
camera_y -= 2
if key_pressed[pygame.K_a]:
if camera_x < 0:
camera_x += 2
if key_pressed[pygame.K_d]:
if camera_x > -630:
camera_x -= 2
if event.type == pygame.KEYDOWN:
if pygame.key.get_mods() & pygame.KMOD_ALT:
if event.key == pygame.K_F4:
game_running = False
screen.blit(map, (camera_x, camera_y))
pygame.display.flip()
clock.tick(60)
pygame.quit()
我尝试添加'pygame.DOUBLEBUF | pygame.HWSURFACE'到display.set_mode标志,但它似乎没有帮助。
答案 0 :(得分:0)
使用该图像大小,我怀疑你是在尝试在Raspberry Pi,Android或其他一些不被PyGame加速的设备上执行此操作。引用:
Raspberry Pi是一款具有强大GPU功能的慢速CPU。 Pygame本身并不利用GPU,导致您遇到的性能不佳。要利用GPU,您需要为您的编程语言找到一个适用于OpenGLES,OpenVG等的库。幸运的是,有一些库可以大大简化这一点 - 以下是一些示例: pi3D和Simple2D。 还有其他一些取决于您要使用的语言。 此外,Graphics Programming Forum on the Raspberry Pi Forums非常有助于学习如何从Raspberry Pi GPU中获得最佳性能。 如果您想了解GPU的强大功能,请查看Raspbian附带的hello_video系列演示 - Raspberry Pi Demo Programs
您的代码没有任何问题。