2015-08-05 6 views
0

Мы строим игру с Spritekit, которая требует, чтобы физический движок был детерминированным.Spritekit, Cocos2D/Chipmunk физический движок не детерминирован, переход на Box2d

Концепция игры: 2 участника - 2 устройства. Каждый игрок ждет, пока другой сыграет свою очередь. На каждом повороте игрок применяет импульс на одном из физических тел и посылает через websocket импульс и тело, на которое был применен импульс. Проблема в том, что каждое физическое моделирование результатов отличается.

В соответствии с настоящей статьей http://blog.element84.com/comparing-sprite-kit-physics-to-direct-box2d.html (тест 3) мы обнаружили, что проблема связана с двигателем физики Spritekit. Мы попытались переключить SpriteKit с Cocos2d 3 + Chipmunk и получили ту же проблему (немного лучше, чем SpriteKit).

Теперь единственным способом, который мы нашли, является переход на Box2d, но мы не знаем, как подключить двигатель к нашему проекту.

В соответствии с этой статьей: SpriteKit Nodes Sticking to Edges of Scene/Not Bouncing похоже возможно.

Наш проект написан в Свифт.

Похожие игры: https://itunes.apple.com/en/app/soccer-stars/id826523703?mt=8

Любые предложения?

+0

ваши физические тела содержат равные веса? а во-вторых, комплект спрайтов использует box2d внутри, для аналогичного импульса просто определяют массу тела – dragoneye

+0

да масса равна. Проблема такая же: –

+0

Могу ли вы опубликовать эту часть кода (физическая) – dragoneye

ответ

0

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

Introduction to Network Physics by Glenn Fiedler