Извините, если этот вопрос невероятно легко ответить, или я похож на идиота. Мне интересно, как я буду выполнять скрипт в одном файле, pygame event loop, blits и т.д., А затем переключиться на другой файл SelectWorld.py, который имеет собственный цикл событий и блики и т.д. Если я просто позвоню ему основная функция, создает ли какое-либо замедление, потому что у меня все еще есть открытый файл, или я просто это делаю? SelectWorld.transition() вид вещи. Заранее спасибо.
Оказывается, ответ на это был больно прост, и я спросил об этом, когда я просто изучал Python. Нет никакого понижения скорости от просто вызова функции из другого файла и предоставления ей всей работы. Спасибо всем за ответы, ребята.
Здесь требуется разделить переменные между двумя различными приложениями: 2 разных сценария с циклами событий, блитами и т.д. Поэтому по определению они должны быть в разных процессах (если они должны работать одновременно),
1 - Архитектура клиент-сервер (например, игровой сервер) (сервер и клиент могут работать на одной машине)
2 - Многопроцессорная работа с двумя процессами, выполняющимися на одном компьютере с различными способами передачи и синхронизации переменных. (Очередь в очереди, событие и т.д.)
Я понимаю, что вы пытаетесь сделать какое-то переменное профилирование вашей игры? Если он используется для отладки вашей игры или тестирования. Я считаю, что вам нужно много кода, чтобы получить небольшую полезную информацию (потому что игра может работать слишком быстро, чтобы вы могли анализировать переменные)
1 - import pdb, pdb.set_trace(): он остановит процесс в строке, где вы вызвали функцию, а на терминале вы можете увидеть значения переменных.
2 - Вы можете использовать Eclipse (с pyDev): Очень хороший отладчик (строка за строкой)
3 - Unittest, Mock: Вы должны начать использовать, потому что это полезно, потому что вы можете легко увидеть, когда вы нарушаете старый код (с unittest) и/или тестируете новый код...
Надеюсь, это поможет вам :)
Вот предложение: создайте две версии вашего скрипта. Сбросьте все в одно. В другом случае сделайте правильную вещь, чтобы выставить свой код в отдельные файлы с интеллектуальными именами файлов.
Теперь запустите сначала эту команду:
$ time python my_game_all_in_one.py
(Знак доллара представляет подсказку командной строки.) И запустите второй:
$ time python my_game.py
Команда time
сообщит вам, сколько времени игра действительно заняла для запуска, как в режиме реального времени, так и в отношении времени процессора. Запускайте обе команды, скажем, по десять раз каждый, и принимайте среднее значение каждого раза.
Это называется "профилирование", и это поможет вам решить, какой подход лучше всего, или если он даже имеет значение.