#include "Player.h" USING_NS_CC; bool Player::init(){ //primero la superclase if (!Sprite::init()) { return false; } _speed = 150; _currentAnimation = IDLE; createIdleAnimation(); createExplosionAnimation(); //lanzamos la animacion por defecto runAction(_idleAnimation); return true; } void Player::createIdleAnimation(){ //creamos un pool de imagenes para la animacion VectoranimFrames; auto acc = 0; for (int i = 0; i < 4; i++){ auto frame = SpriteFrame::create("animacion_nave.png", Rect(acc, 0, 50, 63)); acc += 50; animFrames.pushBack(frame); } //si ninguna animacion esta corriendo el esprite por defecto es definido aqui this->setSpriteFrame(animFrames.at(0)); //creamos una animacion con un tiempo de espera entre cada frame de 0.25s auto animation = Animation::createWithSpriteFrames(animFrames, 0.25f); //creamos la accion de animar el objeto animation auto animate = Animate::create(animation); //creamos una accion que repita para siempre la animacion _idleAnimation = RepeatForever::create(animate); // ponemos un tag a la animacion para poder pararla en el futuro _idleAnimation->setTag(Player::Animations::IDLE); } void Player::createExplosionAnimation(){ Vector animFrames; auto acc = 0; for (int i = 0; i < 4; i++){ auto frame = SpriteFrame::create("player_explosion.png", Rect(acc, 0, 50, 63)); acc += 50; animFrames.pushBack(frame); } auto animation = Animation::createWithSpriteFrames(animFrames, 0.15f); //creamos la accion de animar el objeto animation, en este caso no necesitamos //un RepeatForever porque solo debe explotar una vez y parar. _explosionAnimation = Animate::create(animation); _explosionAnimation->setTag(Player::Animations::EXPLOSION); } void Player::update(float dt){ }