Переход Python / Pygame из одного файла в другой - PullRequest
1 голос
/ 04 сентября 2011

Извините, если на этот вопрос невероятно легко ответить, или я звучу как идиот. Мне интересно, как я мог бы выполнить скрипт в одном файле, цикл событий Pygame, блики и т. Д., Затем переключиться на другой файл, SelectWorld.py, который имеет свой собственный цикл событий, и блиты, и т. Д. Если я просто вызову его Основная функция, это создает какое-либо замедление, потому что у меня все еще открыт исходный файл, или я в порядке, просто делаю это? SelectWorld.transition () своего рода вещь. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 04 сентября 2011

Здесь необходимо иметь возможность обмениваться переменными между двумя разными приложениями: 2 разных скрипта с циклами событий, блитами и т. Д. Таким образом, по определению, они должны быть в другом процессе (если они должны работать на в то же время).

Существует два основных способа сделать это:

1 - клиент-серверная архитектура (как игровой сервер) (сервер и клиент могут работать на одном компьютере)

2 - многопроцессорная обработка с двумя процессами, выполняющимися на одной машине с различными способами обмена данными и синхронизации переменных. (Pipe Queue, Event и т. Д.)

Я понимаю, что вы пытаетесь выполнить своего рода профилирование переменных вашей игры? Если он используется для отладки вашей игры или тестирования. Я считаю, что вам нужно много кода, чтобы получить немного полезной информации (потому что игра может работать слишком быстро, чтобы вы могли анализировать переменные)

У вас есть эти альтернативы:

1 - импорт pdb, pdb.set_trace (): он остановит процесс в строке, где вы вызвали функцию, и на терминале вы увидите значения переменных.

2 - Вы можете использовать Eclipse (с pyDev): очень хороший отладчик (строка за строкой)

3 - Unittest, Mock: это то, что вы должны начать использовать, потому что это полезно, потому что вы можете легко увидеть, когда вы ломаете старый код (с помощью unittest) и / или тестируете новый код ...

Надеюсь, это поможет вам:)

1 голос
/ 04 сентября 2011

Вот предложение: создайте две версии вашего скрипта. Сбрось все в одно. В другом случае делайте код правильно в отдельных файлах с умными именами файлов.

Теперь запустите первую команду:

 $ time python my_game_all_in_one.py

(Знак доллара представляет приглашение командной строки.) И выполните второе:

 $ time python my_game.py

Команда time скажет вам, сколько времени фактически потребовалось для запуска игры, как в реальном времени, так и сколько времени процессора. Выполните обе команды, скажем, по десять раз каждая и возьмите среднее значение каждого раза.

Это называется «профилирование», и оно поможет вам решить, какой подход лучше или если он даже имеет значение.

0 голосов
/ 16 мая 2012

Оказалось, что ответ на этот вопрос был мучительно прост, и я спросил об этом, когда только изучал Python.Понижение скорости невозможно просто вызвать функцию из другого файла и позволить ей выполнить всю работу.Спасибо за все ответы, ребята.

...