Моя собственная модель в деле.js

Я использую Matter.js для программирования простой игры. У меня проблемы с выяснением, как лучше всего подключить мою модель к Matter.js.

В моей игре есть бактерии, и я хотел бы иметь класс Bacterium так что я могу управлять этими парнями. В моей текущей реализации этот класс создает и хранит свой собственный Matter.Body, который я передаю на двигатель. Здесь я сталкиваюсь с неприятностями. Я хотел бы обновить некоторые аспекты моей модели, когда бактерии сталкиваются друг с другом и со стенами, но я не могу найти эффективный способ определить, какие бактерии в моей модели сталкиваются в моем обработчике столкновений Matter.

Должен ли я продлить Matter.Bodyпрототип для этого? Какой-нибудь совет или более важные проекты в Интернете, на которые мне стоит взглянуть?

2 ответа

Решение

Посмотрите на Render.collisions функция в Render.js учебный класс. Эта функция рендерит все коллизии, которые происходят в кадре, который отображается. Я думаю, понимая, как они это делают, вы можете решить, что вам нужно в вашей ситуации.

Помните, что в файлевеей используется игровой цикл, который действительно отличается от настройки на основе событий, с которой обычно работают веб-страницы. Посмотрите на Render.js класс, чтобы лучше понять, как работать с двигателем, который обеспечивает материя.

Не расширяйте прототипы, которыми вы не владеете. Добавление тела MJS в качестве поля в ваш класс — прекрасный подход, и вы можете отслеживать, какие тела сталкиваются, используяMapчтобы связать каждое тело MJS с соответствующим экземпляром вашего класса.

Вот пример, который подключается кcollisionStartиcollisionEndСобытия MJS для вызова методов в пользовательском классе, который составляет тела MJS.

The Body.labelСвойство может помочь в различении типов тела, но, в конечном счете, MJS не предлагает никакого решения для управления сущностями, кроме этого. Я предостерегаю от чрезмерной зависимости от.label. В конечном счете, вы сами выбираете дизайн, который соответствует потребностям вашего приложения.

Другие вопросы по тегам