Cocos2d iPhone проблема синхронизации бурундука - PullRequest
0 голосов
/ 20 марта 2011

В моем проекте cocos2d-iphone я использую Chipmunk для создания физической модели.Кроме того, я использую оболочку SpaceManager obj-c для Бурундука.

Я даю Бурундуку постоянный временной интервал Dt.

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

Это имеет катастрофические последствия длягеймплей.Например, если FPS по какой-то причине замедляется, физическое моделирование сканирует и объект движется гораздо медленнее.Это делает дизайн уровней практически невозможным!

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

Итак, я исправил это, используя новейшую версию Spacemanager (из источника).Он имеет улучшенную функцию шага (если вы используете constantDt), которая «складывает» любое дополнительное время, которое могло накопиться с момента последнего пересчета, и учитывает его.

Спасибо MobileBros!

0 голосов
/ 28 марта 2011

Вы можете попробовать использовать две петли в вашей игре.Используйте NSTimer для стимуляции бурундука и CADisplayLink только для рисования.При каждом перерисовке спрашивайте у вашей физической модели текущее положение объектов.

...