Повторный запуск скрипта pygame/python
Используя IDLE, я написал интерактивную программу на Python с использованием pygame и сохранил ее как файл Songboard01.py. Я использую команду запуска IDLE или клавишу f5 для запуска сценария. Пользователь сначала отвечает на оболочку IDLE, которая задает вопрос запуска, после чего все ответы - это щелчки мышью на экране pygame. В дополнение к игре, экран позволяет пользователю выбирать альтернативные варианты, такие как (1) "Выйти", (2) "Инструкции", (3) "Кредиты", (4) "Решения" и (5) ". Играй еще раз ". Первые три работают нормально, и игра может без проблем работать после (2) или (3). Меня поставила в тупик "Играй снова".
Эта функция:
def new_game():
done = True # closes pygame while-loop
pygame.quit()
import Songboard01.py
запустит игру заново с вопросом о запуске в оболочке IDLE, но сработает только один раз. Если пользователь пытается получить новую игру во второй раз, сообщение об ошибке заканчивается:
Файл "/Users/anobium/Desktop/SongBoard/Songboard01.py", строка 314, в импорте new_game Songboard01.py ModuleNotFoundError: нет модуля с именем 'Songboard01.py'; Songboard01 - это не пакет
1 ответ
Программа python не может импортировать себя, и используя import
функция вызовет ошибку. Также не следует ставить ".py" в конце имени пакета. Я рекомендую поставить основной игровой цикл и поставитьbreak
если пользователь выбирает (1), (2), (3) или (4). Поставитьcontinue
если пользователь выбирает (5). Ваша игра вернется к началу, если пользователь выберет (5).
Образец кода:
#do your imports
import pygame #and all other needed modules
#Make classes or setup the game
while True:
#Do all of the game stuff
#Ok now make the buttons
#if button = 1 or 2 or 3 or 4:
break
#else if button = 5:
continue