从上次退出的屏幕启动游戏
大家好,我需要你帮助 我正在制作Pygame(Python)的游戏项目 我的游戏具有多个级别,对于每个级别,我在此代码中进行了一个单独的文件
,这是我的游戏代码,
from button import *
from level1 import main1
from level2 import main2
from level3 import main3
from level4 import main4
from level5 import main5
from level6 import main6
from level7 import main7
from level8 import main8
from level9 import main9
from level10 import main10
from level11 import main11
from level12 import main12
import pygame
import sys
pygame.mixer.init()
pygame.init()
SCREEN = pygame.display.set_mode((1280, 720))
pygame.display.set_caption("Menu")
FONT = pygame.font.SysFont("Roboto", 100)
def level():
pygame.display.set_caption("Levels")
pygame.mixer.music.play()
while True:
OPTIONS_MOUSE_POS = pygame.mouse.get_pos()
SCREEN.fill((3, 54, 73))
level1 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(320, 60), text_input="LEVEL 1",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level1.color = level1.changeColor(OPTIONS_MOUSE_POS)
level1.update(SCREEN)
level2 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(320, 160), text_input="LEVEL 2",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level2.changeColor(OPTIONS_MOUSE_POS)
level2.update(SCREEN)
level3 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(320, 260), text_input="LEVEL 3",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level3.changeColor(OPTIONS_MOUSE_POS)
level3.update(SCREEN)
level4 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(320, 360), text_input="LEVEL 4",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level4.changeColor(OPTIONS_MOUSE_POS)
level4.update(SCREEN)
level5 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(320, 460), text_input="LEVEL 5",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level5.changeColor(OPTIONS_MOUSE_POS)
level5.update(SCREEN)
level6 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(320, 560), text_input="LEVEL 6",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level6.changeColor(OPTIONS_MOUSE_POS)
level6.update(SCREEN)
level7 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(960, 60), text_input="LEVEL 7",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level7.changeColor(OPTIONS_MOUSE_POS)
level7.update(SCREEN)
level8 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(960, 160), text_input="LEVEL 8",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level8.changeColor(OPTIONS_MOUSE_POS)
level8.update(SCREEN)
level9 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(960, 260), text_input="LEVEL 9",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level9.changeColor(OPTIONS_MOUSE_POS)
level9.update(SCREEN)
level10 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(960, 360), text_input="LEVEL 10",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level10.changeColor(OPTIONS_MOUSE_POS)
level10.update(SCREEN)
level11 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(960, 460), text_input="LEVEL 11",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level11.changeColor(OPTIONS_MOUSE_POS)
level11.update(SCREEN)
level12 = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(960, 560), text_input="LEVEL 12",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
level12.changeColor(OPTIONS_MOUSE_POS)
level12.update(SCREEN)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.mixer.music.play()
main_menu()
if event.type == pygame.MOUSEBUTTONDOWN:
if level1.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main1()
if level2.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main2()
if level3.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main3()
if level4.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main4()
if level5.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main5()
if level6.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main6()
if level7.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main7()
if level8.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main8()
if level9.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main9()
if level10.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main10()
if level11.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main11()
if level12.checkForInput(OPTIONS_MOUSE_POS):
pygame.mixer.music.play()
main12()
pygame.display.update()
def main_menu():
pygame.display.set_caption("Menu")
SCREEN.fill((3, 54, 73))
while True:
MENU_MOUSE_POS = pygame.mouse.get_pos()
MENU_TEXT = FONT.render("MAIN MENU", True, (0, 204, 0))
MENU_RECT = MENU_TEXT.get_rect(center=(640, 100))
PLAY_BUTTON = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(640, 250), text_input="PLAY",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
LEVELS = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(640, 400), text_input="LEVELS", base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
QUIT_BUTTON = Button(image=pygame.image.load("button.png"), font=pygame.font.SysFont("Roboto", 60), pos=(640, 550), text_input="QUIT",
base_color="white", hovering_color=(0, 204, 0),
music=pygame.mixer.music.load("click sound.wav"))
SCREEN.blit(MENU_TEXT, MENU_RECT)
for button in [PLAY_BUTTON, LEVELS, QUIT_BUTTON]:
button.changeColor(MENU_MOUSE_POS)
button.update(SCREEN)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN:
if PLAY_BUTTON.checkForInput(MENU_MOUSE_POS):
main1()
if LEVELS.checkForInput(MENU_MOUSE_POS):
level()
if QUIT_BUTTON.checkForInput(MENU_MOUSE_POS):
quit()
pygame.display.update()
我有主菜单屏幕,在单击play按钮级别1开始时,我的play按钮开始。如您在上述导入语句中所见,每个级别每个级别的MAIN1和LEVEL2 ITS MAIN2具有单独的主函数。
现在的问题是,当我单击play按钮级别1在完成Level1之后开始时,Level2启动等等。
但是,当我在任何级别上退出游戏时(例如在Level4上)。游戏从Level1再次开始。
因此,我需要在上述代码中进行的更改,如果我在Level4上退出,那么下一次游戏再次单击“播放”按钮将继续从Level4而不是从Level1开始。
请帮忙
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于此问题,您需要有一个数据库,并且需要在此处保存用户状态,并且每次打开游戏首先获取用户状态,以便您可以拥有当前的用户级别,但是现在您也应该进行重置按钮,以便用户可以使用用户重新启动游戏,如果他愿意,您可以拥有数据库文档。我通常更喜欢NOSQL数据库,但您可以选择其中任何一个
,您可以在此处获得参考。
For this problem you need to have a database and need to save user status there and every time you open game first get user status so that you can have the current level of user but there now you should also make reset button too so that user can restart game if he wants you can have database documentations. i usually prefer NoSQL database but you can go for any of them
you can get reference here https://www.mongodb.com/languages/python#:~:text=The%20first%20step%20to%20connect,text%20editor%20like%20Textpad%2FNotepad.&text=Use%20the%20connection_string%20to%20create,get%20the%20MongoDB%20database%20connection.