【发布时间】:2014-04-06 10:42:29
【问题描述】:
在我的 SpriteKit 游戏中,我有许多随机排列的图块节点 (>100),我需要能够检测图块和角色节点之间的碰撞。为此,我使用 SKPhysicsBody。
我发现如果我启用 SKPhysicsBody 代码,我的帧速率会下降到 40fps 左右,但如果我注释掉代码,它会上升到 60fps。我想这与引擎试图模拟每帧 100 多个节点的物理特性有关...有没有办法可以防止这种情况发生但仍能检测到我的角色和图块之间的碰撞?
对于瓷砖物理,我为瓷砖使用以下代码:
self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:size];
self.physicsBody.affectedByGravity = NO;
self.physicsBody.categoryBitMask = WallCategory;
self.physicsBody.collisionBitMask = 0;
self.physicsBody.contactTestBitMask = CharacterCategory;
对于我的角色:
self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:size];
self.physicsBody.usesPreciseCollisionDetection = YES;
self.physicsBody.restitution = 0;
self.physicsBody.friction = 0;
self.physicsBody.linearDamping = 0;
self.physicsBody.categoryBitMask = CharacterCategory;
self.physicsBody.contactTestBitMask = 0xFFFFFFFF;
self.physicsBody.collisionBitMask = BoundaryCategory;
【问题讨论】:
标签: ios ios7 sprite-kit skphysicsbody skphysicsworld