Вопрос

У меня есть 2 изображения без фона с треугольниками, я хочу соединить один треугольник с другим, но Sprite Kit, думая, что мои изображения квадратные не треугольники, и называйте меня DidBegincontact не в нужное время, например:

Imgur

Я создаю свой спрайт, как это:

self.sprite = [SKSpriteNode spriteNodeWithImageNamed:spriteName];

[self.sprite setSize:CGSizeMake(40, 40)];
self.sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.sprite.size];
self.sprite.physicsBody.mass = 0;
self.sprite.physicsBody.usesPreciseCollisionDetection = YES;    
self.sprite.physicsBody.categoryBitMask = Category;
self.sprite.physicsBody.collisionBitMask = 0;
self.sprite.physicsBody.contactTestBitMask = Category;   
self.sprite.physicsBody.dynamic = YES;
.

Это было полезно?

Решение

Контакты между двумя телами зависят от их физики, а не их текстуры.Итак, когда вы используете

self.sprite.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.sprite.size];
.

Вы прикрепляете прямоугольные физики.

Вам нужно создать треугольную физику, используя метод:

[SKPhysicsBody bodyWithPolygonFromPath:path];
.

Прочитайте на методе здесь .

Для того, чтобы получить значения для создания пути, вы можете использовать recphysics-body Path Generator / P >.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top