Настройка игровых объектов в cocos2d + box2d - PullRequest
0 голосов
/ 11 августа 2010

У меня проблема с дизайном, это может быть связано с тем, что я еще не полностью понимаю cocos2d и box2d.

Я хочу создать игровые объекты, которые имеют CCSprite (данные изображения) и b2Body (физика). Могу ли я сделать инкапсулирующий объект, который содержит оба? если бы я сделал это, это позволило бы мне внести изменения в CCSprite

ИЛИ

как я видел в примере кода, b2Body имеет переменную userData, в которой задан спрайт. Тогда с этим методом мне нужно было бы только один указатель на физические объекты, который позаботился бы о CCSprite.

Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 12 августа 2010

Простое решение состоит в том, чтобы установить элемент userData тела для указания на спрайт, а элемент userData спрайта для указания на тело. Таким образом, вы можете получить доступ к ним обоим простым и удобным способом. Тогда вам также не нужно инкапсулировать объекты спрайта и тела в актере.

1 голос
/ 12 августа 2010

Мой предпочтительный способ сделать это - заключить оба объекта в объект Actor.Мой объект Actor также отвечает за обновление позиции / поворота CCSprite на основе данных b2Body.Затем я использую этот объект Actor в качестве userData в b2Body.Наличие Actor в качестве userData полезно при переборе тел в слушателях контактов.

...