我为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类类别?或者我是否误解了某些东西,这是预期的行为吗?
答案 0 :(得分:0)
Well PhysicsBody可能使用类集群方法,广泛用于Apple框架。 你应该使用内置的接触面具来识别你的物理机构。 就像在文档中解释的那样:
categoryBitMask 一个掩码,用于定义此物理主体所属的类别。