iOS sprite kit didbegincontact ne fonctionne pas correctement
-
20-12-2019 - |
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:
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;
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