我正在尝试使用一个类在图像创建后随时间旋转但我一直收到错误:
“pygame.error:宽度或高度太大”。
game_display=pygame.display.set_mode((display_width,display_height))
display_rect=game_display.get_rect()
forest_img=pygame.image.load("forest.jpg")
game_display.blit(forest_img,(0,0)
kunai=pygame.image.load("Kunai.png")
kunai=pygame.transform.scale(kunai, (13,55))
kunai_rect=kunai.get_rect(center=display_rect.center)
angle = 0
done = False
global done
global kunai
global angle
global kunai_rect
class Knife():
def __init__(self, vx):
self.x=display_width//2+30
self.y=int(ground+65)
self.vx=vx
def update(self):
self.x+=self.vx
def draw(self):
global done
global kunai
global angle
global kunai_rect
while not done:
kunai=pygame.transform.rotate(kunai, angle)
kunai_rect=kunai.get_rect(center=kunai_rect.center)
game_display.blit(kunai, kunai_rect)
clock.tick(60)
angle+=1
knifes=[]
while True:
for event in pygame.event.get():
if event.type==pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
knifes.append(Knife(20))
for knife in knifes:
knife.draw()
knife.update()
有人可以帮助我吗?感谢。
答案 0 :(得分:0)
您旋转的曲面kunai
是一个全局变量。旋转后,它将再次存储到同一个变量中:
kunai=pygame.transform.rotate(kunai, angle)
每次旋转曲面时,它都会变大。你可以想象旋转一个矩形,如果你想将旋转的矩形存储在一个未旋转的矩形中,你在大多数情况下都必须使未旋转的矩形变大。
所以会发生的是kunai
矩形对于每次迭代变得越来越大。您可以尝试打印尺寸以查看此内容。
您应该改为旋转原始图像。