我的游戏中有两次碰撞发生在主要角色遇到障碍物时,游戏结束时出现以及碰到地面并且没有任何反应。这是代码
-(void)didBeginContact:(SKPhysicsContact *)contact
{
if ([contact.bodyA.node.name isEqualToString:@"ground"] || [contact.bodyB.node.name isEqualToString:@"ground"]) {
[hero land];
} else {
[self gameover];
}
我怎样才能添加一个不同的主角/英雄碰撞,它不会引导我进行游戏但会产生完全不同的结果(就像主角的不同反应一样)
答案 0 :(得分:0)
尝试检测其他特殊情况的联系方式:
-(void)didBeginContact:(SKPhysicsContact *)contact
{
BOOL isContactWithGround = ([contact.bodyA.node.name isEqualToString:@"ground"] || [contact.bodyB.node.name isEqualToString:@"ground"]);
BOOL isContactWithHero = ([contact.bodyA.node.name isEqualToString:@"hero"] || [contact.bodyB.node.name isEqualToString:@"hero"]);
BOOL isContactWithOtherThing = ([contact.bodyA.node.name isEqualToString:@"otherThing"] || [contact.bodyB.node.name isEqualToString:@"otherThing"]);
if (isContactWithHero && isContactWithGround) {
[hero land];
} else if (isContactWithHero && isContactWithOtherThing) {
[self doSomethingElse];
else {
[self gameover];
}
}