0

我正在开发一个 cocos2d 游戏,我将在子弹的帮助下发射导弹,在这里每当我发射导弹时,导弹必须隐藏,但我的问题是每发射 2 发子弹,我必须隐藏一枚导弹。

这是我的代码

if (CGRectIntersectsRect(bullet.boundingBox, missile.boundingBox)){  
    target--;  
    [objectiveLabel setString:[NSString stringWithFormat:@"%d",target]];  
    bullet.visible = NO;  
    missile.visible = NO;  
    continue;  
} 

此代码用于单次拍摄,但我希望 2 次拍摄具有相同的功能

任何人请建议我如何完成这项任务

提前致谢

4

1 回答 1

0

为您的导弹对象添加一个属性,并在您的代码中对其进行测试,如下所示:

@property(nonatomic,readwrite) NSUInteger shotsToDeath;

当你初始化导弹时:

-(id) init {
    if(self=[super init]) {
        // add the following line to your init
        self.shotsToDeath = 1;  // default
        return self;
    }
    return nil;
}

创建导弹时,您可以增加会杀死他的射击次数:

missile.shotsToDeath = 2;   // if appropriate (depends on difficulty level ?)

最后在你上面的例程中:

if (CGRectIntersectsRect(bullet.boundingBox, missile.boundingBox)){  
    missile.shotsToDeath--;
    if(0==missile.shotsToDeath {
        target--;  
        [objectiveLabel setString:[NSString stringWithFormat:@"%d",target]];  
        missile.visible = NO;  
    }
    bullet.visible = NO;
    continue;
} 

编。没有测试,没有编译,只是为了这个想法。当心递减,确保你不会以 -1 结束 :)

于 2013-05-25T17:04:08.890 回答