我编写了一个函数,用于在pygame中显示欢迎屏幕:
def welcome():
exit_game = False
while not exit_game:
global red,green
game_window.fill((233,109,102))
screen_text("welcome to snakes",black,160,240)
screen_text("press spacebar to play",black,144,260)
pygame.draw.rect(game_window,red,[76,425,70,32])
pygame.draw.rect(game_window,green,[355,425,70,32])
screen_text("PLAY",black,86,432)
screen_text("QUIT",black,365,432)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit_game = True
if event.type == pygame.MOUSEBUTTONDOWN:
print(event.button)
if 425<pygame.mouse.get_pos()[1]<457:
if 76<pygame.mouse.get_pos()[0]<146 :
try:
pygame.mixer.music.load(os.path.join(dir,song_num))
pygame.mixer.music.set_volume(0.5)
pygame.mixer.music.play()
except Exception as e:
print("could not load the music")
game_loop()
if 355<pygame.mouse.get_pos()[0]<425:
exit_game = True
if 425<pygame.mouse.get_pos()[1]<457:
if 76<pygame.mouse.get_pos()[0]<146 :
red = (255,0,0)
if 355<pygame.mouse.get_pos()[0]<425:
green = (0,255,0)
else :
red = (200,0,0)
green = (0,200,0)
pass
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
try:
pygame.mixer.music.load(os.path.join(dir,song_num))
pygame.mixer.music.set_volume(0.5)
pygame.mixer.music.play()
except Exception as e:
print("could not load the music")
game_loop()
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
之后,我想在用户按下p
时创建一个暂停屏幕,在该屏幕中,我复制了上述函数,并对其进行了如下修改
def paused():
while pause:
global red,green
game_window.fill((233,109,102))
screen_text("paused",black,160,240)
# screen_text("",black,144,260)
pygame.draw.rect(game_window,red,[76,425,135,32])
pygame.draw.rect(game_window,green,[355,425,70,32])
screen_text("CONTINUE",black,86,432)
screen_text("QUIT",black,365,432)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.MOUSEBUTTONDOWN:
print(event.button)
if 425<pygame.mouse.get_pos()[1]<457:
if 76<pygame.mouse.get_pos()[0]<76+ 135 :
try:
pygame.mixer.music.unpause()
except Exception as e:
print("could not load the music")
unpause()
if 355<pygame.mouse.get_pos()[0]<425:
pygame.quit()
exit()
if 425<pygame.mouse.get_pos()[1]<457:
if 76<pygame.mouse.get_pos()[0]<76 + 135:
red = (255,0,0)
if 355<pygame.mouse.get_pos()[0]<425:
green = (0,255,0)
else :
red = (200,0,0)
green = (0,200,0)
pygame.display.update()
clock.tick(60)
我只想改变一些事情,比如暂停音乐,改变按钮和按键的功能
有没有其他方法可以做到这一点而不是复制它?我可以像在类中一样继承并更改一些代码或添加更多更改吗
为要在较大的函数中更改的每件事情设置一个条件参数。可能类似于下面的内容
相关问题 更多 >
编程相关推荐