百聞は一見に如かずので、私の質問は「どうすればこれを実現できるか?」です。
直感的に、これは、 で定義されたメイン表示オブジェクト内にサーフェスを定義しpygame.display.set_mode
、必要なものをそのサーフェスに描画 (またはブリッティング) し、 で回転させることで実現できると考えました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()
もちろん、これを行うためのより良い方法があれば、私はすべて耳にします。おそらく、スプライト グループは良い方法でしょうか? (使ったことないけど…=/)
ありがとう!