заставить классы взаимодействовать в игровом движке - PullRequest
0 голосов
/ 12 июля 2011

Мне нужно, чтобы классы взаимодействовали в игровом движке. Я сохранил все классы в разные файлы .py и просто собираюсь импортировать их в файл игрового движка и запустить их через игровой движок. Проблема в том, что мне нужно настроить игровой движок, начать игру, и тогда классы смогут звонить друг другу после начала игры. Я думаю что-то вроде этого ниже:

import class1.py
import class2.py

class Engine(Object):

  def__init__(self, start)
    self.start = start

  def play(self):
    next = self.start

    while True:
        print "\n-"
        class = getattr(self.start, next)
        next = class()

my_engine = Engine(class1)

my_engine.play()

Затем, по ходу игры, у меня будет звонок класса 1, класс 2 и так далее ...

Это кажется слишком упрощенным.

Любое направление по этому вопросу будет высоко ценится.

1 Ответ

0 голосов
/ 21 октября 2018

Игровой движок, как правило, состоит из систем, которые выполняют одну функцию движка.Примеры включают физику, рендеринг, столкновение, ввод и т. Д. Вы можете реализовать системную архитектуру, которая будет обрабатывать отдельные компоненты.

Даже архитектура ECS (Entity Component System) работает хорошо.Сущности - это не что иное, как пустые классы, и вы должны добавить компоненты, которые являются не более чем поведенческими элементами, определяющими, как должна работать сущность.

В конце я предлагаю вам создать классы для систем и компонентов и вывести их соответствующим образом.Вот полезная ссылка: ECS в играх

...