Bezdepbonusu7Программирование: статьи и ответы

Вопрос

CCSprite в Cocos2d

Автор вопроса: AJPatelОтветов: 2

Я новичок в cocos2d

Я хочу сделать простую игру в cocos2d.

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

как я могу столкнуться с алмазным объектом... или как я могу использовать этот объект в CCSprite....

Пожалуйста, дайте мне правильный ответ...

Заранее спасибо...

cocos2d-iphoneios4

Ответы

Ответ 1 · рейтинг 1 · gixdev

Просто используйте следующий метод:
bool CGRectContainsRect ( CGRect rect1, CGRect rect2 );
Чтобы узнать больше, перейдите по ссылке https://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGGeometry/Reference/reference.html

Ответ 2 · Lukman

Простым обнаружением столкновений в Cocos2d является либо обнаружение перекрывающихся прямоугольников, либо обнаружение точки в прямоугольнике. Чтобы обнаруживать столкновения сложных фигур, вам нужно использовать физический движок (Box2D или Chipmunk), но это, безусловно, сделает вашу игру не простой :).

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

if (CGRectContainsRect([sprite1 boundingBox], [sprite2 boundingBox])) {
   /* the rectangles overlap so now use some trigonometric formula,
      euler formula, harmonic series or fourier transform or something,
      to further check if the actual shapes overlap or not :P */

}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы