我想在另一堂课处理我所有的联系人。我真的不知道怎么做,所以我这样做:
HandleContact是SKNode的子类
-(void)didBeginContact:(SKPhysicsContact *)contact {
HandleContact *handleContact = [[HandleContact alloc]
initWithBodyA:contact.bodyA.node bodyB:contact.bodyB.node
scene:self];
}
一切都按预期工作,但我收到此错误:
未使用的变量'HandleContact'
那我该如何正确地做到这一点? (也许我应该使用其他类型?)
答案 0 :(得分:1)
您当前的代码是内存泄漏。每次注册联系人时,都会实例化一个HandleContact类。如果您想要一个类来处理您的联系人,我建议您在代码的开头实例化它并保留对它的引用。像(void)didMoveToView:(SKView *)view
您需要问自己的问题是,为什么需要一个班级来处理您的联系人?如果您希望整理代码,可以在didBeginContact
内调用不同的方法。
-(void)didBeginContact:(SKPhysicsContact *)contact {
uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);
if (collision == (CategoryAlpha | CategoryBeta))
[self myMethod1];
}