0

だから私は撃つことができるキャラクターで簡単なゲームを作っています.キャラクターが弾丸を向けると方向が逆になることを除いて、射撃は機能します. なぜこれが起こっているのか理解しているので、私の質問は、現在の速度を維持しながらアレイから弾丸を削除して、キャラクターの方向を無視する方法はありますか?

-(void)spinTapped
{

        CCSprite *bullet = [CCSprite spriteWithFile:@"rwby_bullet.png"];
        bullet.position = ccp(self.character.position.x , self.character.position.y+25);
        [bullets addObject:bullet];
        [self addChild:bullet z:-1];


}

その後、アップデートで:

if(isRight) bulletVelocity = 10;
    else if(isLeft) bulletVelocity = -10;

    for(CCSprite *bullet in bullets)
    {
        bullet.position = ccp(bullet.position.x + bulletVelocity + scrollVelocity, bullet.position.y);
    }
4

1 に答える 1

0

各箇条書きを作成するときに、タグを設定します。右向きの場合は 10、左向きの場合は -10 にして、速度値のタグを追加します。-(void)spinTapped {

    CCSprite *bullet = [CCSprite spriteWithFile:@"rwby_bullet.png"];
    bullet.position = ccp(self.character.position.x , self.character.position.y+25);
    if (isRight) {
       bullet.tag = 10;
    }
    else {
       bullet.tag = -10;
    }
    [bullets addObject:bullet];
    [self addChild:bullet z:-1];

}

NSMutableArray *deleteArray = [NSMutableArray alloc] init];

for(CCSprite *bullet in bullets)
{
    bullet.position = ccp(bullet.position.x + bullet.tag + scrollVelocity, bullet.position.y);
    if (*bullet is off screen*) {
        [deleteArray addObject:bullet];
    }
}

for (CCSprite *bullet in deleteArray)
{
    [bullets removeObject:bullet];
}
于 2013-09-21T19:43:28.930 に答える