一张图片胜过一千个字,所以最终,我的问题是“我怎样才能做到这一点?”:
直观地说,我认为这可以通过在由 定义的主显示对象内定义一个表面,在该表面上pygame.display.set_mode
绘制(或 blitting)任何需要的东西,然后用 旋转它来实现pygame.transform.rotate
。我假设静态点可以直接绘制到screen
下面代码中的对象,也就是函数返回的对象pygame.display.set_mode
。
因此,我起草了以下测试代码,但没有看到任何轮换。我究竟做错了什么?
#!/usr/bin/env python
import pygame as pg
from pygame.locals import *
SIZE = (800, 600)
BGCOL = (128, 128, 128)
STIMCOL = (80, 255, 80)
screen = pg.display.set_mode((SIZE), HWSURFACE | DOUBLEBUF)
screen.fill(BGCOL)
surf = pg.Surface((200, 200), flags=HWSURFACE)
surf.fill(BGCOL)
pg.draw.rect(surf, STIMCOL, (10, 20, 40, 50))
pg.draw.rect(surf, STIMCOL, (60, 70, 80, 90))
screen.blit(surf, (100, 100))
pg.display.flip()
running = True
while running:
pg.transform.rotate(surf, -1)
pg.display.flip()
当然,如果有更好的方法可以做到这一点,我会全力以赴。也许精灵组是一个好方法?(虽然我以前从未使用过它们... =/)
谢谢!