子弹用角色改变方向

时间:2013-09-21 19:36:05

标签: iphone xcode cocos2d-iphone

所以我正在制作一个简单的游戏,其中包含一个可以射击的角色,并且射击工作除了当角色转动子弹反转方向时。我理解为什么会这样,所以我的问题是,有没有办法可以在保持当前速度的同时从阵列中移除子弹,以便忽略角色的方向?

-(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);
    }

1 个答案:

答案 0 :(得分:0)

创建每个项目符号时,请设置标记。将其设为10表示右侧,-10表示左侧,然后只需添加速度值的标签。 - (无效)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];
}