Переход Python / Pygame из одного файла в другой

1

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

  • 0
    Вы хотите, чтобы Pygame и ваш другой скрипт запускались одновременно? Или вы хотите открыть второй скрипт после того, как Pygame был закрыт? Если вы хотите запустить одновременно, проверьте пакет «многопроцессорности», который поставляется с Python 2.6 и более
  • 0
    Я говорю не о закрытии окна отображения, а о продолжении работы с другим файлом, сохранении переменных ... Я думаю, что это будет сделано из импорта SelectWorld *, а затем вызов метода main для него. Но поскольку исходный файл Title все еще работает, это приведет к дополнительным ненужным накладным расходам или к чему-то еще? Нечто похожее на «States» Title и WorldSelection.
Показать ещё 1 комментарий
Теги:
pygame
transition
blit

3 ответа

0
Лучший ответ

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

1

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

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

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

2 - Многопроцессорная работа с двумя процессами, выполняющимися на одном компьютере с различными способами передачи и синхронизации переменных. (Очередь в очереди, событие и т.д.)

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

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

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

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

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

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

1

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

Теперь запустите сначала эту команду:

 $ time python my_game_all_in_one.py

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

 $ time python my_game.py

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

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

  • 0
    Да, я посмотрю на это ... Не совсем то, что я просил, но если я смогу получить некоторые данные из этого, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню