CCSprite в Cocos2d

Я новичок в cocos2d

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

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

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

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

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


person AJPatel    schedule 08.04.2011    source источник


Ответы (2)


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

person gixdev    schedule 08.04.2011
comment
эй, спасибо, но с помощью этого метода я могу распознать только часть изображения, потому что на самом деле изображение представляет собой прямоугольник в форме ромба, это их... если вы думаете, что этот метод работает их... - person AJPatel; 08.04.2011
comment
Привет, ты работаешь с cocos2d, так что помоги мне, как установить мой объект рисования в CCSprite, если я установил его на спрайт, чем я легко добавлю твой метод и обнаружу коллизию. - person AJPatel; 08.04.2011

Простым обнаружением столкновений в 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 */

}
person Lukman    schedule 08.04.2011