首先,这里是带有固定缩进的相关代码其次,我假设gameDisplay = pygame.display.set_mode((800, 600))。在def bathRoom():
bathroom = pygame.image.load("pou_bathroom.jpg")
gameDisplay.blit(bathroom,[0,0])
gameDisplay.blit(pivi,[200,80])
gameDisplay.blit(soap,(a, b))
gameDisplay.blit(shower,(c,d))
gameDisplay.blit(shop,(e,f))
def main_loop():
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
mouse = pygame.mouse.get_pos()
click = pygame.mouse.get_pressed()
if click[0] == 1 and x + bathWidth > mouse[0] > x and y + bathHeight > mouse[1] > y:
bathRoom()
pygame.display.update()
现在,由于其他对象可能不会与背景重叠,所以我也会删除这些对象以使代码更易于阅读。在
然后我将把pygame.display.update()切换到pygame.display.flip(),因为这实际上会完全重新呈现“blited”图像。在
我还将bathroom = ...移到函数之外,因为这会在您不需要的时候给HW增加压力。在
只有这样才能奏效:
^{pr2}$
另外,请考虑更改您正在工作的IDE。
它会在行尾留下文物,破坏你的压痕。在
以下是手册中的引文:pygame.display.flip — Update the full display Surface to the screen
pygame.display.update — Update portions of the screen for software displays
update应该工作,但是通常除非您想更新小区域,否则使用flip,因为它在某些时候更可靠、更快速(即使他们声称它不应该这样做)。在