iOS Sprite Kit didBeginContact não funcionar corretamente
-
20-12-2019 - |
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:
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;
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