不同的碰撞

时间:2014-05-29 20:17:28

标签: ios sprite-kit

我的游戏中有两次碰撞发生在主要角色遇到障碍物时,游戏结束时出现以及碰到地面并且没有任何反应。这是代码

-(void)didBeginContact:(SKPhysicsContact *)contact
{

    if ([contact.bodyA.node.name isEqualToString:@"ground"] || [contact.bodyB.node.name isEqualToString:@"ground"]) {
        [hero land];
    } else {
        [self gameover];
    }

我怎样才能添加一个不同的主角/英雄碰撞,它不会引导我进行游戏但会产生完全不同的结果(就像主角的不同反应一样)

1 个答案:

答案 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];
    }
}