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