4
一張圖片勝過千言萬語,所以最終,我的問題是「我怎樣才能做到這一點?」:我如何可以旋轉一組pygame的對象(無論是rects或圖像)
直覺上,我認爲這可以通過在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()
當然,如果有更好的方法來做到這一點,我全部都是耳朵。也許精靈團隊是一個很好的出路? (雖然我以前從未使用過...... = /)
謝謝!
這是朝正確的方向邁出的一步,但我跑了代碼和rects從屏幕滾出,永遠不會返回...... =( – blz
正如我在編輯中所說的,如果旋轉不是90度,你可以在http://www.pygame.org/docs/ref/transform.html的旋轉註釋中找到解決這個問題的代碼 –