#include "PlayerUpgradeParticle.h"
USING_NS_CC;
bool PlayerUpgradeParticle::init()
{
if (!Node::init()){
return false;
}
_target = nullptr;
_initialized = false;
_speed = 100;
_particle = ParticleSystemQuad::create("shootx2.plist");
_particle->setLife(0.2f);
_particle->setScale(getScale()*0.2f);
setVisible(false);
_particle->setPosition(Point(0, 0));
addChild(_particle);
scheduleUpdate();
return true;
}
void PlayerUpgradeParticle::update(float dt)
{
if (!isVisible()) return;
//para abjo
setAnchorPoint(Point(0.5, 1));
setPosition(getPositionX(), getPositionY() - _speed*dt);
if (getPositionY() < 0){
setVisible(false);
}
//si alcanza al jugador actualiza su municion
if (_target != nullptr && _target->getBoundingBox().intersectsRect(getBoundingBox())
&& isVisible() && _target->isVisible() && _target->getCurrentAnimation() != Player::Animations::EXPLOSION)
{
_target->updateBullets(CC_CALLBACK_0(PlayerUpgradeParticle::createBullet, this));
setVisible(false);
}
}
PlayerBullet* PlayerUpgradeParticle::createBullet(){
return PlayerBulletx2::create();
}
void PlayerUpgradeParticle::setVisible(bool visible){
Node::setVisible(visible);
_particle->setVisible(visible);
if (visible){
_particle->resetSystem();
}
else
{
_particle->stopSystem();
}
}