使用PhysicsKit类型调用SKPhysicsContactDelegate方法?

时间:2014-05-07 14:07:21

标签: ios sprite-kit skphysicsbody skphysicscontact

我为SKPhysicsBody添加了一些便捷方法,以便在didBeginContact类的SKPhysicsContactDelegate方法中更轻松地处理它们。

@interface SKPhysicsBody (MyCategory)
-(void)convenience;
@end

看来委托使用不同的类型然后记录。当我尝试在didBeginContact中使用这个方便的方法时,我得到一个例外。

尝试以下测试代码时

-(void)didBeginContact:(SKPhysicsContact *)contact {
    NSLog(@"%@, %d", [contact.bodyA class], [contact.bodyA isKindOfClass:[SKPhysicsBody class]]);
}

它会记录

PKPhysicsBody, 0

PKPhysicsBody是(私人)PhysicsKit框架的一部分。

虽然SKPhysicsContact文档明确指出

bodyA
The first body in the contact. (read-only)
@property(readonly, nonatomic) SKPhysicsBody *bodyA

有没有解决方法,所以我仍然可以使用SKPhysicsBody类类别?或者我是否误解了某些东西,这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

Well PhysicsBody可能使用类集群方法,广泛用于Apple框架。 你应该使用内置的接触面具来识别你的物理机构。 就像在文档中解释的那样:

categoryBitMask 一个掩码,用于定义此物理主体所属的类别。