Помогите сделать так чтобы когда игрок нажимает играть игра начиналась с самого начала

Основной код игры:

import pygame, controls, sys
from gun import Gun
from pygame.sprite import Group
from stats import Stats
from scores import Scores
from level import Level

class Menu:
    def __init__(self, punkts = [270, 140, u'Punkt', (0,0,0), (0,0,0)]):
        self.punkts = punkts
    def render(self, screen, font, num_punkt):
        for i in self.punkts:
            if num_punkt == i[5]:
                screen.blit(font.render(i[2], 1, i[4]), (i[0], i[1]))
            else:
                screen.blit(font.render(i[2], 1, i[3]), (i[0], i[1]))
        
    def menu(self, screen):
        done = True
        font_menu = pygame.font.Font('fonts/Joan-Regular.ttf', 50)
        punkt = 0
        while done:
            bg = pygame.image.load('images/stars_black_night_sky-1287371.jpg')
            screen.blit(bg, (0,0))

            self.screen = screen
            self.image = pygame.image.load('images/pixil-frame-0 (6).png')
            self.rect = self.image.get_rect()
            self.screen_rect = screen.get_rect()
            self.rect.centerx = self.screen_rect.centerx
            self.rect.bottom = self.screen_rect.bottom
            self.rect.bottom = 400
            self.center = float(self.rect.centerx)
            self.mright = False
            self.mleft = False

            mp = pygame.mouse.get_pos()
            for i in self.punkts:
                if mp[0]>i[0] and mp[0]<i[0]+80 and mp[1]>i[1] and mp[1]<i[1]+80:
                    punkt = i[5]

            self.render(screen, font_menu, punkt)

            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_UP:
                        if punkt > 0:
                            punkt -= 1
                    elif event.key == pygame.K_DOWN:
                        if punkt < len(self.punkts)-1:
                            punkt += 1
                elif event.type == pygame.MOUSEBUTTONDOWN and event.button:
                    if punkt == 0:
                        done = False
                        run()
                    elif punkt == 1:
                        sys.exit()
            self.screen.blit(self.image, self.rect)
            screen.blit(screen, (0, 0))
            pygame.display.flip()

def run():
    pygame.init()
    screen = pygame.display.set_mode((700, 750))
    pygame.display.set_caption("Космичиские защитник")
    bg_color = (0, 0, 0)
    gun = Gun(screen)
    bullets = Group()
    inos = Group()
    stats = Stats() 
    sc = Scores(screen, stats)
    controls.create_army(screen, gun, stats, inos)
    levels = Level(screen, inos, gun, stats)
    punkts = [(270, 350, u"Game", (250,250,30), (250,30,250), 0),
    (280, 510, u"Quit", (250,250,30), (250,30,250), 1)]
    game = Menu(punkts)
    game.menu(screen)
    punkts_mini = [(230, 350, u"Continue", (250,250,30), (250,30,250), 0),
    (250, 510, u"Exit to menu", (250,250,30), (250,30,250), 1)]

    while True: 
        controls.events(screen, gun, bullets)
        if stats.run_game:
            gun.update_gun(inos)
            bullets.update()
            bullets.update() 
            gun.gun_up(inos)
            controls.update(bg_color, screen, stats, sc, gun, levels, inos, bullets)
            controls.update_bullets(screen, stats, sc, inos, gun, bullets)
            controls.update_inos(stats, screen, sc, gun, inos, bullets)

run()

Это код меню:

import pygame
import sys

class Menu:
    def __init__(self, punkts = [270, 140, u'Punkt', (0,0,0), (0,0,0)]):
        self.punkts = punkts
    def render(self, screen, font, num_punkt):
        for i in self.punkts:
            if num_punkt == i[5]:
                screen.blit(font.render(i[2], 1, i[4]), (i[0], i[1]))
            else:
                screen.blit(font.render(i[2], 1, i[3]), (i[0], i[1]))
        
    def menu(self, screen):
        done = True
        font_menu = pygame.font.Font('fonts/Joan-Regular.ttf', 50)
        punkt = 0
        while done:
            bg = pygame.image.load('images/stars_black_night_sky-1287371.jpg')
            screen.blit(bg, (0,0))

            self.screen = screen
            self.image = pygame.image.load('images/pixil-frame-0 (6).png')
            self.rect = self.image.get_rect()
            self.screen_rect = screen.get_rect()
            self.rect.centerx = self.screen_rect.centerx
            self.rect.bottom = self.screen_rect.bottom
            self.rect.bottom = 400
            self.center = float(self.rect.centerx)
            self.mright = False
            self.mleft = False

            mp = pygame.mouse.get_pos()
            for i in self.punkts:
                if mp[0]>i[0] and mp[0]<i[0]+80 and mp[1]>i[1] and mp[1]<i[1]+80:
                    punkt = i[5]

            self.render(screen, font_menu, punkt)

            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_UP:
                        if punkt > 0:
                            punkt -= 1
                    elif event.key == pygame.K_DOWN:
                        if punkt < len(self.punkts)-1:
                            punkt += 1
                elif event.type == pygame.MOUSEBUTTONDOWN and event.button:
                    if punkt == 0:
                        done = False
                    elif punkt == 1:
                        sys.exit()
            self.screen.blit(self.image, self.rect)
            screen.blit(screen, (0, 0))
            pygame.display.flip()
python

Перепробовал многие варианты, но в итоге вернулся назад чтобы было более понятно


Ответы (0 шт):