Pergunta

Eu tenho 2 imagens sem fundo com triângulos, eu quero ligar um triângulo com outro, mas Sprite kit de pensar que minhas imagens não é quadrado não é um triângulo, e me chamar de didBeginContact não na hora certa, por exemplo:

Imgur

Eu a criar o meu sprite como este:

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;
Foi útil?

Solução

Os contactos entre dois corpos depende da sua physicsBody, não a sua textura.Assim, quando você usa

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

Você está anexando um retangular physicsBody.

Você precisa criar um triangular physicsBody usando o método:

[SKPhysicsBody bodyWithPolygonFromPath:path];

Ler sobre o método aqui.

A fim de obter os valores para a criação de um caminho, você pode usar o SKPhysicsBody Caminho Do Gerador ferramenta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top