在我的游戏中,我可以选择允许用户通过单击MessawBoxW中的取消按钮来显示游戏的答案。但是,我不知道如何用我现有的背景图像替换背景图像。
如何设置一个事件,当用户点击取消时,游戏会在背景中点亮新图片所有内容?
我游戏的下面代码片段给出了一个错误说
Traceback (most recent call last):
File, line 155, in <module>
main()
File, line 141, in main
screen.blit(pg.transform.scale(background_image,event.dict['size']),(0,0))
UnboundLocalError: local variable 'background_image' referenced before assignment"
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.MOUSEBUTTONDOWN:
for sprite in all_sprites:
if sprite.rect.collidepoint(event.pos):
selected = sprite
print(sprite.rect, "\n")
stored_posX = sprite.rect.left
stored_posY = sprite.rect.top
break
elif event.type == pg.MOUSEBUTTONUP:
selected = None
collided_sprites = pg.sprite.spritecollide(sprite, all_sprites, False)
print(collided_sprites)
while(len(collided_sprites) > 1):
if sprite in collided_sprites:
result = Mbox('Error!', 'You cannot place an item over another, retry or cancel to display answer.', 5)
if result == IDRETRY:
collided_sprites[:] = [] #clear the list so that we can check it again for other sprites
update(sprite, stored_posX, stored_posY)
elif result == IDCANCEL:
background_image = pg.image.load("answerDoc.png").convert()
#above is the piece I do not understand
pg.display.flip()
#done = True
break
elif event.type == pg.MOUSEMOTION:
if selected:
selected.rect.center = event.pos
elif event.type==VIDEORESIZE:
screen = pg.display.set_mode(event.dict['size'],HWSURFACE|DOUBLEBUF|RESIZABLE)
screen.blit(pg.transform.scale(background_image,event.dict['size']),(0,0))
pg.display.flip()
display_coordinates = pg.display.Info()
print('current_w = ', display_coordinates.current_w, '\ncurrent_h = ', display_coordinates.current_h, '\n')
all_sprites.update()
screen.blit(pg.transform.scale(background_image, (1712,945)), (0,0))
all_sprites.draw(screen)
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
main()
pg.quit()
sys.exit()
答案 0 :(得分:0)
我不确定这是否有助于错误(我认为可能),但它看起来像这样:
elif result == IDCANCEL:
background_image = pg.image.load("answerDoc.png").convert()
#above is the piece I do not understand
pg.display.flip()
background_image = pg.image.load("answerDoc.png").convert()
没有缩进,因此未正确更改。我不知道这是否能解决这个错误,但也许它会对某些事情有所帮助。