У меня есть два физических тела в моей игре spritekit, которые сталкиваются, и мне немного трудно заставить их остановиться.
Я публикую код физики для них ниже. Проблема в том, что когда рой касается моих монет, он толкает их, не совсем понимаю, почему, поскольку, насколько мне известно, моему врагу говорят контактировать только с игроком, а моей монете говорят только контактировать со стеной и игроком (поправьте меня, если я не прав)
(P.S. Я закомментировал столкновениеBitMask для монеты, потому что, когда я этого не делаю, мои монеты падают сквозь мои стены)
Спасибо
1-й спрайт
enemy = [SKSpriteNode spriteNodeWithImageNamed:@"Swarm"];
enemy.physicsBody =
[SKPhysicsBody bodyWithRectangleOfSize:enemy.size];
enemy.physicsBody.dynamic=NO;
enemy.name=@"Eagle";
enemy.physicsBody.categoryBitMask = PCFallersCategory;
// enemy.physicsBody.collisionBitMask =
// PCPlayerCategory;
enemy.physicsBody.contactTestBitMask = PCPlayerCategory;
enemy.physicsBody.restitution=0;
enemy.physicsBody.friction=0;
2-й Спрайт.
self.name = @"coin";
CGFloat minDiam = MIN(self.size.width, self.size.height);
minDiam = MAX(minDiam-8, 8);
self.physicsBody =
[SKPhysicsBody bodyWithCircleOfRadius:minDiam/2.0];
self.physicsBody.dynamic=YES;
self.physicsBody.restitution =0;
self.physicsBody.friction = 0;
self.physicsBody.linearDamping = 0;
self.physicsBody.categoryBitMask = PCCollectableCategotry;
//self.physicsBody.collisionBitMask =PCPlayerCategory;
self.physicsBody.contactTestBitMask = PCPlayerCategory|PCWallCategory;