Question

J'ai 2 images sans fond avec triangles, je veux connecter un triangle avec un autre, mais le kit Sprite pensant que mes images sont carrées pas un triangle et m'appellent didbegincontact Pas au bon moment, par exemple:

imgur

Je crée mon sprite comme ceci:

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;

Était-ce utile?

La solution

Les contacts entre deux organes dépendent de leur corps physique, pas de leur texture.Donc, quand vous utilisez

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

Vous attachez un corps de physique rectangulaire.

Vous devez créer une physique triangulaire à l'aide de la méthode:

[SKPhysicsBody bodyWithPolygonFromPath:path];

Lire la méthode ici .

Pour obtenir les valeurs de création d'un chemin, vous pouvez utiliser le Générateur de chemin Skphyssicsbody outil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top