我正在研究簡單的測試遊戲。我有與牆壁碰撞的動態物體。如果動態物體的速度很高(我認爲這是原因),物體就會穿過牆壁。有誰知道如何解決這個問題?SpriteKIt - 動態物體與牆壁碰撞並走槽
牆:
// Create wall ...
CGRect rect = CGRectMake(0, 0, 25, self.frame.size.height);
SKNode *wallNode = [SKNode node];
wallNode.position = CGPointMake(CGRectGetMidX(self.frame) + rect.size.width * 0.5, 250);
wallNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:rect.size];
wallNode.physicsBody.dynamic = NO;
wallNode.physicsBody.categoryBitMask = CollisionTypeNet;
[self addChild:wallNode];
球員:
SKSpriteNode *player = [SKSpriteNode spriteNodeWithImageNamed:@"player"];
player.name = playerCategoryName;
player.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:player.frame.size];
player.physicsBody.restitution = 0.1f;
player.physicsBody.friction = 0.0f;
player.physicsBody.dynamic = YES;
player.physicsBody.categoryBitMask = CollisionTypePlayer;
player.physicsBody.collisionBitMask = CollisionTypeNet ;
player.physicsBody.contactTestBitMask = CollisionTypeWall;
[self addChild:player];
嗯無位掩碼就沒有碰撞匹配(非零)接觸。對於高速度使用精確碰撞:https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsBody_Ref/Reference/Reference.html#//apple_ref/occ/instp/SKPhysicsBody/usesPreciseCollisionDetection – LearnCocos2D