-2

現在、最初の爆弾を削除した後に爆弾を配置していますが、爆弾を連続して配置する必要があり、その爆弾にはスプライトシートが1つしかないため、最初の爆弾が配置され、すぐに2番目の爆弾が最初の爆弾よりも配置されるなどの問題が発生しています削除していません。cocos2dを初めて使用するので、助けてください

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:
   @"Bombs.plist"];
   _spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"Bombs.png"];
   [_tileMap addChild:_spriteSheet z:100 ];NSMutableArray *walkAnimFrames = 
    [NSMutableArray       array];
    for(int i = 1; i <=20; ++i)
    {
    [walkAnimFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] 
    spriteFrameByName:     [NSString stringWithFormat:@"Bomb_%d.png", i]]]; 
    }
    CCAnimation *walkAnim = [CCAnimation   animationWithFrames:walkAnimFrames delay:0.1f];
    _bomb= [CCSprite spriteWithSpriteFrameName:@"Bomb_1.png" ];
     _bomb.position =_player.position;
    [_bomb runAction:[CCSequence actions:[CCDelayTime actionWithDuration:0.2f],
   [CCAnimate   actionWithAnimation:walkAnim],[CCCallFuncN actionWithTarget:
   self    selector:@selector(spriteDone:)],nil]];
    [_spriteSheet addChild:_bomb z:100];


// selector to remove bomb

- (void)spriteDone:(id)sender { 
    [_spriteSheet removeChild:_bomb cleanup:YES];
     _bombRemoved =TRUE; NSLog(@"Bool value: %d",_bombRemoved); 
}
4

1 に答える 1

0

編集 2 : アニメーションが完了した後、次のタッチ時に特定の爆弾が消えるようにします。

// where you determine the touch should add a bomb
if(_bomb) {
  [_bomb removeFromParentAndCleanup:YES];
  _bomb = nil;
}

// do your stuff creating new _bomb object

// when you create the action, change to :

[_bomb runAction:[CCSequence actions:
   [CCDelayTime actionWithDuration:0.2f],
   [CCAnimate   actionWithAnimation:walkAnim],
   [CCCallBlock actionWithBlock:^{ 
          [_bomb removeFromParentAndCleanup:YES];
          _bombRemoved = YES;
          _bomb=nil;
      }
   ],nil]
];
于 2013-06-08T15:55:54.700 に答える