cocos2d, как заставить b2World нарисовать мои собственные данные? - PullRequest
0 голосов
/ 12 июля 2011

Я работаю над Box2d Editor для iOS, используя cocos2d.

Я завернул b2World в свой собственный класс World.Я хочу реализовать свою собственную функцию рисования.Поскольку я буду рисовать классы более высокого уровня (стены, веревки и т. Д.), Недостаточно создать подкласс b2Draw и установить его в качестве DebugDraw мира, но мне также нужно изменить b2World DrawDebugData.

Является ли хорошей идеей унаследовать мой класс World от CCLayer и переопределить метод draw?Какой подход лучше?

Ответы [ 2 ]

0 голосов
/ 16 июля 2011

Ответ, который я хотел бы, чтобы люди читали.

Даже если b2World реализует некоторые функции рисования, он просто предназначен для целей отладки и должен использоваться как есть (если только выхотите изменить одну или две линии).

Если вы хотите нарисовать объекты более высокого уровня (или изменить поведение отладочной отрисовки), вы не должны изменять рисование b2World или GLES-Render.Вместо этого вы переопределяете методы рисования CCSprite / CCLayer.

0 голосов
/ 12 июля 2011

Просто добавьте указатель CCSprite в b2Body userData, чтобы прикрепить спрайт к b2Body. Затем каждый кадр обновляет позицию ваших спрайтов в соответствии с положением b2bodies.

...