0

弾丸の助けを借りてミサイルを発射する cocos2d ゲームを開発しています。ここでは、ミサイルを発射するたびにミサイルを非表示にする必要がありますが、ここでの問題は、2 つの弾丸の発射ごとに 1 つのミサイルを非表示にする必要があることです。

これが私のコードです

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

このコードは 1 回の撮影用ですが、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 に答える