【发布时间】:2020-11-22 02:59:00
【问题描述】:
由于某种原因,这个程序在运行大约一秒钟后就崩溃了。有趣的是,改变 turnAngle 或 fps 会影响它在崩溃前的持续时间。它抛出的错误是
ValueError: subsurface rectangle outside of surface area 第 29 行/第 9 行。有什么想法吗?
import pygame as pg
def rot_center(image, angle):
orig_rect = image.get_rect()
rot_image = pg.transform.rotate(image, angle)
rot_rect = orig_rect.copy()
rot_rect.center = rot_image.get_rect().center
rot_image = rot_image.subsurface(rot_rect).copy()
return rot_image
pg.init()
mainDisplay = pg.display.set_mode([600, 376])
imgSplashBG = pg.image.load('guiAssets/splash/BG.png')
imgSplashFG = pg.image.load('guiAssets/splash/FG.png')
imgSplashRedCircle = pg.image.load('guiAssets/splash/redCircle.png')
imgSplashGreenCircle = pg.image.load('guiAssets/splash/greenCircle.png')
turnAngle = 10
frame = 0
clock = pg.time.Clock()
crashed = False
while not crashed:
frame += 1
mainDisplay.blit(imgSplashBG, (0, 0))
mainDisplay.blit(rot_center(imgSplashGreenCircle, ((frame % 360) * 10)), (-189, -189))
mainDisplay.blit(rot_center(imgSplashRedCircle, ((frame % 360) * 10)), (453, 230))
mainDisplay.blit(imgSplashFG, (0, 0))
pg.display.flip()
clock.tick(30)
【问题讨论】:
-
不,这个答案并不真正适用于我的代码。这实际上让我非常困惑。