void Player::scheduleShoot(){ //establecemos que la nave disparara cada medio segundo DelayTime *delayAction = DelayTime::create(0.5f); // cramos una accion a partir de una funcion CallFunc *callSelectorAction = CallFunc::create(CC_CALLBACK_0(Player::shoot, this)); //creamos una secuencia que primero espera y luego dispara auto shootSequence = Sequence::create(delayAction, callSelectorAction, NULL); // envolvemos la secuencia un una accion RepeatForever runAction(RepeatForever::create(shootSequence)); } void Player::shoot(){ _bulletIndex = _bulletIndex % _numBullets; auto bullet = _bulletPool.at(_bulletIndex); bullet->setAnchorPoint(Point(0.5, 0)); if (!bullet->isVisible()){ bullet->setPosition(getPositionX(),getPositionY()+getBoundingBox().size.height*0.5); bullet->setVisible(true); } _bulletIndex++; }