void BackGroundLayer::LoadAnimationCache()
{
    auto animationGuBlue = Animation::create();   	//创建鼓面显示动画
    animationGuBlue->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("blueGu.png"));
    animationGuBlue->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("blueGu_2.png"));
    animationGuBlue->setDelayPerUnit(0.2f);
    animationGuBlue->setRestoreOriginalFrame(true);
    auto animationGuRed = Animation::create();
    animationGuRed->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("redGu.png"));
    animationGuRed->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("redGu_2.png"));
    animationGuRed->setDelayPerUnit(0.2f);
    animationGuRed->setRestoreOriginalFrame(true);
    AnimationCache::getInstance()->addAnimation(animationGuBlue, "guBlue_Ani"); //添加为动画缓存
    AnimationCache::getInstance()->addAnimation(animationGuRed, "guRed_Ani");
}
void BillBoardTest::addNewAniBillBoradWithCoords(Vec3 p)
{
    for (unsigned int i = 0; i < 10; ++i)
    {
        auto billboardAni = BillBoard::create("Images/grossini.png");
        billboardAni->setScale(0.5f);
        billboardAni->setPosition3D(Vec3(p.x, p.y,  -150.0f + 30 * i));
        _layerBillBorad->addChild(billboardAni);

        auto animation = Animation::create();
        for( int i=1; i<15; i++)
        {
            char szName1[100] = {0};
            sprintf(szName1, "Images/grossini_dance_%02d.png", i);
            animation->addSpriteFrameWithFile(szName1);
        }
        // should last 2.8 seconds. And there are 14 frames.
        animation->setDelayPerUnit(2.8f / 14.0f);
        animation->setRestoreOriginalFrame(true);

        auto action = Animate::create(animation);
        billboardAni->runAction(RepeatForever::create(action));
        billboardAni->setOpacity(CCRANDOM_0_1() * 128 + 128);
        _billboards.push_back(billboardAni);
    }
}
Beispiel #3
0
void Monster_UI::runCuttleBoomAction()
{


	auto	sprite_boom = Sprite::create();
	sprite->addChild(sprite_boom);


	auto ani = Animation::create();
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PCuttle01.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PCuttle02.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PCuttle03.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PCuttle04.png"));

	ani->setDelayPerUnit(0.05);
	ani->setRestoreOriginalFrame(false);
	ani->setLoops(-1);
	sprite_boom->runAction(Animate::create(ani));
	sprite_boom->setVisible(true);

	sprite_boom->setPosition(sprite->getContentSize().width / 2, sprite->getContentSize().height / 2);

	sprite_boom->runAction(Sequence::create(DelayTime::create(0.2), CallFunc::create([=]()
	{
		sprite_boom->removeFromParentAndCleanup(true);
	}), nullptr));


}
Beispiel #4
0
void CrushNode::setFireState(bool isTrue)
{
	if (!m_pFireSprite)
	{
		m_isBecomeFire = false;
		m_isFireState = isTrue;
		m_pFireSprite = Sprite::create();
		auto animation = Animation::create(); 
		for( int i=1;i<3;i++) 
		{ 
			char szName[100] = {0}; 
			sprintf(szName, "jm_dongxiao_%d.png", i); 
			animation->addSpriteFrameWithFile(szName); 
		} 
		m_pFireSprite->setScale(0.5f);
		m_pFireSprite->setAnchorPoint(Vec2(0,0));
		m_pFireSprite->setPosition(Vec2(-25,-20));
		animation->setDelayPerUnit(0.1f); 
		animation->setRestoreOriginalFrame(true); 
		auto action = Animate::create(animation); 
		auto doAction = RepeatForever::create(Sequence::create(action, action->reverse(),NULL));
		m_pFireSprite->runAction(doAction);
		m_pFireSprite->setZOrder(-1);
		addChild(m_pFireSprite);
		//m_pFireSprite->retain();
	}

}
Beispiel #5
0
bool Guy::init() {
	Sprite::init();

	auto animation = Animation::create();
	for (int i = 1; i <= 5; i++)
	{
		char szName[20] = { 0 };
		sprintf(szName, "guy0%d.png", i);
		animation->addSpriteFrameWithFile(szName);
	}

	animation->setDelayPerUnit(0.25f / 5.0f);
	animation->setRestoreOriginalFrame(true);
	auto action = Animate::create(animation);
	runAction(RepeatForever::create(action));

	Size size = Size(44, 52);
	setContentSize(size);
	setPhysicsBody(PhysicsBody::createBox(size));

	getPhysicsBody()->setRotationEnable(false);
	getPhysicsBody()->setContactTestBitmask(CONTACT_MASK);

	return true;
}
Beispiel #6
0
bool LoadingInterface::init()
{
	if (!Layer::init())
	{
		return false;
	}
	m_LoadingPanel = (Layout *)cocostudio::GUIReader::getInstance()->widgetFromJsonFile("res/LoadingRes/Loading_1.json");
	m_LoadingMain = (Layout *)m_LoadingPanel->getChildByName("LoadingMain");
	addChild(m_LoadingPanel);
	m_Animation = (ImageView *)m_LoadingMain->getChildByName("Animation");
	//loading de dong hua 
	Sprite* frame = Sprite::create();
	frame->setPosition(Director::getInstance()->getWinSize()/2);
	auto animation = Animation::create();
	for( int i=1;i<12;i++)
	{
		char szName[100] = {0};
		sprintf(szName, "res/PictureRes/loding/loading%d.png", i);
		animation->addSpriteFrameWithFile(szName);
	}

	animation->setDelayPerUnit(0.05f);
	animation->setRestoreOriginalFrame(true);

	auto action = Animate::create(animation);
	frame->runAction(RepeatForever::create(action));

	m_LoadingMain->addChild(frame);
	//ark_musicCommon::instance()->StartMusic();
	PopLoginInterFace();
	return true;
}
bool FireAOE::init()
{
	if (!AOEArea::init())
	{
		return false;
	}
	auto fireS = Sprite::create();

	auto boom = Animation::create();
	for (int i = 0; i < 6; i++)
	{
		char szName[100];
		sprintf(szName, "Fire_Attack_Boom_%02d.png", i);
		boom->addSpriteFrameWithFileName(szName);
	}
	boom->setDelayPerUnit(0.1);
	boom->setRestoreOriginalFrame(true);
	auto aniBoom = Animate::create(boom);
	fireS->runAction(aniBoom);
	fireS->setOpacity(150);
	this->addChild(fireS);
	

	this->scheduleOnce(schedule_selector(FireAOE::update), 0.2);
	return true;
}
Beispiel #8
0
Tower_Shit::Tower_Shit(Node*scene, Vec2 pos, int lev)
{
	view_click = 0;
	count = 0;

	cos_upgrade = 220;

	this->level = lev;

	initTowerBase();


	effect = 0;

	sprite = Sprite::createWithSpriteFrameName("Shit11.png");

	sprite;;

	sprite_base = MenuItemSprite::create(Sprite::createWithSpriteFrameName("Shit-11.png"), Sprite::createWithSpriteFrameName("Shit-11.png")
		, [=](Ref*p)
	{
		if (view_click == 0)
		{
			((Scene_UI*)scene)->view_click_gloal->setAllVisFalse();

			view_click = new View_Click_Tower(2, this);
		}

	});

	sprite_base->setPosition(pos);
	sprite_base;;

	auto ss = Menu::create(sprite_base, nullptr);
	ss->setPosition(0, 0);
	scene->addChild(ss);




	scene->addChild(sprite);
	sprite->setPosition(pos);

	sprite_upgrade = Sprite::createWithSpriteFrameName("showupgrade02.png");

	scene->addChild(sprite_upgrade);
	sprite_upgrade->setPosition(sprite->getPositionX(), sprite->getPositionY() + sprite->getContentSize().height);
	auto ani2 = Animation::create();
	ani2->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("showupgrade02.png"));
	ani2->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("showupgrade01.png"));
	ani2->setDelayPerUnit(0.1);
	ani2->setRestoreOriginalFrame(false);
	ani2->setLoops(-1);
	sprite_upgrade->runAction(Animate::create(ani2));
	sprite_upgrade->setVisible(false);
	setLevel(lev);


}
Beispiel #9
0
bool Player::init(int typeID) {
    
    runSpeed = 400;
    char pngName[260] = { 0 };
    sprintf(pngName, "res/image/anim%d/stay1.png", typeID);
    
    _player = Sprite::create(pngName);
    _player->setAnchorPoint(Vec2(0.5, 0));
    
    Vector<SpriteFrame*> frameVector;
    for (int i = 1; i <= 5; i++) {
        
        char pngName[260] = { 0 };
        sprintf(pngName, "res/image/anim%d/stay%d.png", typeID, i);
        frameVector.pushBack(SpriteFrame::create(pngName, Rect(0, 0, 54, 58)));
        
    }
    auto StayAnimation = Animation::createWithSpriteFrames(frameVector, 0.1);
    StayAnimation->setRestoreOriginalFrame(false);
    StayAnimation->setLoops(-1);
    StayAnimate = Animate::create(StayAnimation);
    
    StayAnimate->retain();
    
    //2
    frameVector.clear();
    for (int i = 1; i <= 5; i++) {
        char pngName[260] = { 0 };
        sprintf(pngName, "res/image/anim%d/walk%d.png",typeID, i);
        frameVector.pushBack(SpriteFrame::create(pngName, Rect(0, 0, 54, 58)));
    }
    auto WalkAnimation = Animation::createWithSpriteFrames(frameVector, 1);
    WalkAnimation->setRestoreOriginalFrame(false);
    WalkAnimation->setLoops(-1);
   // WalkAnimation->setDelayPerUnit(1);
    WalkAnimate = Animate::create(WalkAnimation);
    
    
    /**
     * 在析构函数中进行释放,否则会被自动释放;导致空指针
     */
    WalkAnimate->retain();
    
    return true;
}
Animation* Animation::clone() const
{
    // no copy constructor
    auto a = new (std::nothrow) Animation();
    a->initWithAnimationFrames(_frames, _delayPerUnit, _loops);
    a->setRestoreOriginalFrame(_restoreOriginalFrame);
    a->autorelease();
    return a;
}
Beispiel #11
0
void  Tower_Ball::Destory()
{

	Scene_UI*sc = (Scene_UI*)sprite->getParent();

	for (vector<Tower_UI*>::iterator it = sc->tower_queue.begin(); it != sc->tower_queue.end(); ++it)
	{

		if ((*it) == this)
		{
			sc->tower_queue.erase(it);
			break;
		}
	}

	setClick(false);

	setTarget(0);

	

	auto x = (Scene_UI*)sprite->getParent();

	x->data->pop(PublicFunc::convertToX(sprite->getPosition().x),
		PublicFunc::convertToY(sprite->getPosition().y));


	auto ani = Animation::create();
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air01.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air02.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air03.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air04.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air05.png"));

	ani->setDelayPerUnit(0.1);
	ani->setRestoreOriginalFrame(true);
	ani->setLoops(1);
	auto an = Animate::create(ani);

	sprite_base->removeFromParentAndCleanup(true);
	effect->removeFromParentAndCleanup(true);
	sprite_bullet_effect->removeFromParentAndCleanup(true);

	sprite_upgrade->removeFromParentAndCleanup(true);

	sprite->runAction(Sequence::create(an, CallFunc::create([=]
	{
		sprite->removeFromParentAndCleanup(true);

		delete this;

	}), nullptr));



}
Beispiel #12
0
void  Monster_UI::set_effect_last_damage(int lev)/*pin 持续伤害*/
{

	if (effect_last_damage_lev == 0)
	{
		sprite_last_damage = Sprite::create();
		sprite->addChild(sprite_last_damage);

		auto ani1 = Animation::create();
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PPin01.png"));
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PPin02.png"));
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PPin03.png"));
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PPin04.png"));

		ani1->setDelayPerUnit(0.03);
		ani1->setRestoreOriginalFrame(false);
		ani1->setLoops(-1);
		sprite_last_damage->runAction(Animate::create(ani1));
		sprite_last_damage->setPosition(sprite->getContentSize().width / 2, 20);

		effect_last_damage_times = 5;
		sprite_last_damage->runAction(RepeatForever::create(Sequence::create(DelayTime::create(0.5), CallFunc::create([=]()
		{
			if (effect_last_damage_times >= 0)
			{
				--effect_last_damage_times;
				sprite_last_damage->setVisible(true);
				beenAttacked(effect_last_damage_lev * 1);
				sprite_last_damage->setPosition(sprite->getContentSize().width / 2, 20);

			}
			else
			{
				sprite_last_damage->setVisible(false);

			}

		}), nullptr)));

	}

	if (effect_last_damage_lev <= lev)
	{
		/*等级比之前的大*/
		effect_last_damage_lev = lev;
		effect_last_damage_times = 5;
		sprite_last_damage->setVisible(true);
	}

	sprite_last_damage->setPosition(sprite->getContentSize().width / 2, 20);


}
Beispiel #13
0
Animation* HelloWorld::createAnimationWithName(std::string name, float delay, int num)
{
    auto animation = Animation::create();
    for (unsigned int i=1; i<=num; i++) {
        std::string frameName = name;
        frameName.append(StringUtils::format("%d",i)).append(".png");
        animation->addSpriteFrameWithFile(frameName.c_str());
    }
    animation->setDelayPerUnit(delay);
    animation->setRestoreOriginalFrame(true);
    return animation;
}
Beispiel #14
0
void Monster_fat_green::runMoveAction()
{
	auto ani = Animation::create();
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("fat_green01.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("fat_green02.png"));
	ani->setDelayPerUnit(3.0 / 30.0);
	ani->setRestoreOriginalFrame(false);
	ani->setLoops(-1);

	auto an = Animate::create(ani);
	sprite->runAction(an);

}
Beispiel #15
0
void GameScene27::tremble(float tmd){
	auto animation1 = Animation::create();
	for (int n=1;n<=2;n++)
	{
		char szName[100] = {0};
		sprintf(szName,"new/compare%d.png",n);
		animation1->addSpriteFrameWithFileName(szName);
	}
	animation1->setDelayPerUnit(0.4f);
	animation1->setRestoreOriginalFrame(true);
	auto action1 = Animate::create(animation1);
	compare->runAction(action1) ;
}
Beispiel #16
0
void GameScene::initAnimation()
{
    // Plane animation
    auto planeAnimation = Animation::create();
    for(int index = 1; index < 4; index++ )
    {
        char name[50] = {0};
        sprintf(name, "planeBlue%i.png", index);
        SpriteFrame* planeSpriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(name);
        planeAnimation->addSpriteFrame(planeSpriteFrame);
    }
    
    planeAnimation->setDelayPerUnit(0.3f / 3.0f);
    planeAnimation->setRestoreOriginalFrame(true);
    auto planeAnimate = Animate::create(planeAnimation);
    auto planeRepeatForever = RepeatForever::create(planeAnimate);
    playerSprite->runAction(planeRepeatForever);
    
    // Puff animation
    auto puffAnimation = Animation::create();
    char name[50] = {0};
    SpriteFrame* puffSpriteFrame;
    sprintf(name, "puffLarge.png");
    puffSpriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(name);
    puffAnimation->addSpriteFrame(puffSpriteFrame);
    sprintf(name, "puffSmall.png");
    puffSpriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(name);
    puffAnimation->addSpriteFrame(puffSpriteFrame);
    
    puffAnimation->setDelayPerUnit(0.2f / 2.0f);
    puffAnimation->setRestoreOriginalFrame(true);
    auto puffAnimate = Animate::create(puffAnimation);
    auto puffRepeatForever = RepeatForever::create(puffAnimate);
    auto puffSprite = Sprite::create();
    puffSprite->runAction(puffRepeatForever);
    puffSprite->setPosition(Point(-playerSprite->getContentSize().width * 0.3, playerSprite->getContentSize().height * 0.7));
    playerSprite->addChild(puffSprite);
}
Beispiel #17
0
void Effect::hit( Node *gameStage, Vec2 pos, float scale /*= 0.2f */ )
{
	m_sprite = Sprite::createWithSpriteFrameName( "explosion_01.png" );
	m_sprite->setPosition( pos );
	gameStage->addChild( m_sprite );
	auto animation = AnimationCache::getInstance( )->getAnimation( "explosion" );
	//remove explosion
	const std::function<void( Node * sprite )> call_func = [&]( Node * sprite ){
		sprite->removeFromParent( );
	};
	animation->setRestoreOriginalFrame( true );
	m_sprite->setScale( scale );
	m_sprite->runAction( Sequence::create( Animate::create( animation ), CallFuncN::create( call_func ), NULL ) );
}
Beispiel #18
0
void  Monster_UI::set_effect_pause_fish(int lev)/*fish 暂停*/
{

	if (effect_pause_lev_1 == 0)
	{
		sprite_effect_pause_1 = Sprite::create();
		sprite->addChild(sprite_effect_pause_1);
		effect_pause_times_1 = 6;
		sprite_effect_pause_1->setPosition(sprite->getContentSize().width / 2, 50);


		auto ani1 = Animation::create();
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PFish-11.png"));
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PFish-12.png"));
		ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PFish-13.png"));

		ani1->setDelayPerUnit(0.1);
		ani1->setRestoreOriginalFrame(false);
		ani1->setLoops(-1);
		sprite_effect_pause_1->runAction(Animate::create(ani1));

		sprite_effect_pause_1->runAction(RepeatForever::create(Sequence::create(DelayTime::create(0.12), CallFunc::create([=]()
		{
			if (effect_pause_times_1 >= 0)
			{
				--effect_pause_times_1;
				sprite->pause();
				sprite_effect_pause_1->setVisible(true);

			}
			else
			{
				sprite_effect_pause_1->setVisible(false);
				sprite->resume();
			}

		}), nullptr)));

	}

	if (effect_pause_lev_1 <= lev)
	{
		/*等级比之前的大*/
		effect_pause_lev_1 = lev;
		effect_pause_times_1 = 6;
		sprite_effect_pause_1->setPosition(sprite->getContentSize().width / 2, 40);
	}

}
Beispiel #19
0
void GameStart::startGameAnimation()
{
    auto animation = Animation::create();
    int i;
    for (i = 1; i <= 4; i++) {
        auto name = String::createWithFormat("aaaa%i.png", i);
        auto frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(name->getCString());
        animation->addSpriteFrame(frame);
    }
    animation->setDelayPerUnit(1 / 4.0f);
    animation->setRestoreOriginalFrame(true);
    

    
}
Beispiel #20
0
void Enemy::loadAnimEnemy()
{
	auto animation = Animation::create();

	for (int i = 1; i <= 4; i++) {
		std::string frameName = StringUtils::format("x%d.png", i);
		SpriteFrame* spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName(frameName);
		animation->addSpriteFrame(spriteFrame);
	}

	animation->setDelayPerUnit(0.18f); //播放间隔
	animation->setRestoreOriginalFrame(true);

	Animate* action = Animate::create(animation);
	runAction(RepeatForever::create(action));
}
Beispiel #21
0
void GameObjHero::onEnter()
{
    Layer::onEnter();
    
    this->setContentSize(Size(85, 90));
    
    // cat body
    auto mainsprite = Sprite::create("catBody1.png");
    auto ani = Animation::create();
    ani->addSpriteFrameWithFile("catBody1.png");
    ani->addSpriteFrameWithFile("catBody2-4.png");
    ani->addSpriteFrameWithFile("catBody3.png");
    ani->addSpriteFrameWithFile("catBody2-4.png");
    ani->setDelayPerUnit(0.1f);
    ani->setRestoreOriginalFrame(true);
    
    mainsprite->runAction(RepeatForever::create(Animate::create(ani)));
    
    addChild(mainsprite);
    
    
    // cat tail
    auto tail= Sprite::create("catTail.png");
    tail->setAnchorPoint(Vec2(0.5, 1));
    tail->setPosition(Vec2(-5, -29));
    tail->setScale(0.5, 0.5);
    tail->setRotation(20);
    
    tail->runAction(RepeatForever::create(Sequence::create(RotateBy::create(0.5, -40), RotateBy::create(0.5, 40), NULL)));
    
    addChild(tail);
    
    // cat left hand
    auto lefthand = Sprite::create("catHand1.png");
    lefthand->setAnchorPoint(Vec2(1, 0.5));
    lefthand->setPosition(Vec2(-18, -20));
    addChild(lefthand);
    
    
    // cat right hand
    auto righthand = Sprite::create("catHand2.png");
    righthand->setAnchorPoint(Vec2(0, 0.5));
    righthand->setPosition(Vec2(18,-20));
    addChild(righthand);
    
    schedule(CC_SCHEDULE_SELECTOR(GameObjHero::releaseBullet), 1.0f , CC_REPEAT_FOREVER, 0.0f);
}
Beispiel #22
0
void Miyu::setAnimation(){
    /* スピードが変わったらアニメーションを入れる */
    if(_speed != _oldSpeed){
        
        if(_speed ==0){
            this->stopAllActions();
            /* 止まっているたびに元の画像読み出しているので遅い TODO */
            this->setTexture("character/miyu_000.png");
        }
        if(_speed > 0 ){
            auto animation = Animation::createWithSpriteFrames(_frames, 0.3f/getSpeed());
            animation->setRestoreOriginalFrame(true);
            this->runAction(RepeatForever::create(Animate::create(animation)));
        }
        
        this->setOldSpeed(_speed);
    }
}
Beispiel #23
0
Animate*Tower_Pin::getAttackAction()
{

	string str = "";



	switch (level)
	{
	case 1:
	{
			  str = "Pin1";


	}break;
	case 2:
	{
			  str = "Pin2";
	}break;
	case 3:
	{
			  str = "Pin3";
	}break;
	}





	auto ani = Animation::create();
	//ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(str + "1.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(str + "2.png"));
	ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(str + "3.png"));


	ani->setDelayPerUnit(0.05);
	ani->setRestoreOriginalFrame(true);
	ani->setLoops(1);

	auto an = Animate::create(ani);
	return an;


}
Beispiel #24
0
Action *edcHeroLayer::setHeroAnim(char *aaname,int aaframes,float delayTime)
{
    auto animation = Animation::create();
    for( int i = 1; i <= aaframes ; i++)
    {
        char szName[100] = {0};
//        sprintf(szName, "snake_chick_up_%04d.png", i);
        sprintf(szName,"%s%04d%s",aaname,i,".png");
//        CCLOG("%s",szName);
        auto temp = Sprite::createWithSpriteFrameName(szName);
        animation->addSpriteFrame(temp->getSpriteFrame());
    }
    // should last 0.6 seconds. And there are 4 frames.
    animation->setDelayPerUnit(delayTime / (float)(aaframes));
    animation->setRestoreOriginalFrame(true);
    Action *temp = RepeatForever::create(Animate::create(animation));

    return temp;
}
Beispiel #25
0
void HeroFrog::initAnimation(){
    for (int i=0; i<9; i++) {
        auto animationStatic = Animation::create();
        for( int j=0;j<animationCount[i];j++)
        {
            char szName[100] = {0};
            sprintf(szName, animaFrameName[i].c_str(), j);
            SpriteFrame* frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(szName);
            animationStatic->addSpriteFrame(frame);
        }
        // should last 2.8 seconds. And there are 14 frames.
        animationStatic->setDelayPerUnit(0.2f);
        animationStatic->setRestoreOriginalFrame(false);
        AnimationCache::getInstance()->addAnimation(animationStatic, animaName[i]);
    }
    
    setHeroStatus(frogStatic);
 
}
void MonsterSprite::move(){
    auto animation=Animation::create();
    __String *anStr1=_actionName.clone();
    __String *anStr2=_actionName.clone();
    anStr1->append("1.png");
    anStr2->append("2.png");
    SpriteFrame *spf1=SpriteFrameCache::getInstance()->getSpriteFrameByName(anStr1->getCString());
    SpriteFrame *spf2=SpriteFrameCache::getInstance()->getSpriteFrameByName(anStr2->getCString());

    animation->addSpriteFrame(spf1);
    animation->addSpriteFrame(spf2);
    animation->setDelayPerUnit(0.5f);
    animation->setRestoreOriginalFrame(true);
    
    auto moveAc= Animate::create(animation);
    
    moveAction=Repeat::create(moveAc, 100);
    this->runAction(moveAction);

}
Beispiel #27
0
void Level01::animCache()
{
	anim1 = Animation::create();
	anim1->addSpriteFrameWithFileName("img/player02.png");
	anim1->addSpriteFrameWithFileName("img/player03.png");
	anim1->addSpriteFrameWithFileName("img/player04.png");
	anim1->setLoops(1);
	anim1->setDelayPerUnit(0.2f);
	anim1->setRestoreOriginalFrame(true);

	auto standAnim = Animation::create();
	standAnim->addSpriteFrameWithFileName("img/player01.png");
	standAnim->addSpriteFrameWithFileName("img/player01-2.png");
	standAnim->addSpriteFrameWithFileName("img/player01-3.png");
	standAnim->setLoops(1);
	standAnim->setDelayPerUnit(0.7f);
	standAnim->setRestoreOriginalFrame(true);

	m_animCache = AnimationCache::getInstance();
	m_animCache->addAnimation(anim1, "walking");
	m_animCache->addAnimation(standAnim, "stand");
}
Beispiel #28
0
void PlayRunLayer::loadFrame(){
    //节奏线碰撞时的动画效果
    auto animation = Animation::create();
    animation->addSpriteFrameWithFile("game/play/hitline_blink.png");
    animation->setDelayPerUnit(0.3f);
    animation->setRestoreOriginalFrame(true);
    AnimationCache::getInstance()->addAnimation(animation, "hitline_blink");
    
    //增加撞线
    auto mRhythm = ui::Scale9Sprite::create("game/play/hitline.png");
    mRhythm->setAnchorPoint(Vec2(0.5,0));
    mRhythm->setPosition(Vec2(gameConfig->impactLine, 0));
    mRhythm->setPreferredSize(Size(mRhythm->getContentSize().width,gameConfig->contentHeight-gameConfig->chordHeight));
    mRhythm->setTag(8001);
    this->addChild(mRhythm,3);

    //和弦区域的底图
    if(gameConfig->musicModel->getType()==MUSICMODEL_TYPE_CHORD){
        auto chordBanner = Sprite::create("game/play/chordbanner.png");
        chordBanner->setPosition(Vec2(0,gameConfig->contentWidth-gameConfig->chordHeight));
        this->addChild(chordBanner);
    }

    //弦间的高度
    int stringCount = 5;
    for (int i=0; i<6; i++) {
        float stringHeight = gameConfig->stringUnitHeight*stringCount;
        stringMap[i+1]=Value(stringHeight);
        
        ui::Scale9Sprite *mString = ui::Scale9Sprite::create("game/play/string.png");
        mString->setPreferredSize(Size(Vec2(gameConfig->contentWidth, mString->getContentSize().height)));
        //设置弦的位置 Y轴:距离下边界的位置+弦的位置
        mString->setPosition(Vec2(gameConfig->contentWidth/2,gameConfig->stringSideHeight+stringHeight));
        this->addChild(mString,1);
        
        stringCount-=1;
    }
}
Beispiel #29
0
Bonus_3_12::Bonus_3_12(Node*scene,Vec2 pos)
{
	string str = "cloud12.png";


	initBase();
	is_Bonus = true;


	Scene_UI*sce = (Scene_UI*)scene;
	menu = MenuItemSprite::create(Sprite::createWithSpriteFrameName(str), Sprite::createWithSpriteFrameName(str), [=](Ref*)
	{
		is_selected = !is_selected;

		if (is_selected)
		{
			for (int i = 0;i<sce->monster_queue.size();i++)
			{
				;
				{
					((Bonus_UI*)sce->monster_queue[i])->sprite_selected->setVisible(false);
					((Bonus_UI*)sce->monster_queue[i])->is_selected = false;

				}

			}

			is_selected = true;
			sprite_selected->setVisible(true);
			return;
		}
		sprite_selected->setVisible(false);

	});
	menu->setPosition(pos);
	menu;;




	 men = Menu::create(menu, nullptr);
	men->setPosition(0, 0);
	scene->addChild(men);


	sprite = Sprite::createWithSpriteFrameName(str);

	scene->addChild(sprite);
	sprite->setPosition(pos);
	sprite;;



	sprite_selected = Sprite::createWithSpriteFrameName("point01.png");

	{
		auto ani = Animation::create();
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("point01.png"));
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("point02.png"));
		ani->setDelayPerUnit(3.0 / 30.0);
		ani->setRestoreOriginalFrame(false);
		ani->setLoops(-1);

		sprite_selected->runAction(Animate::create(ani));
	}
	sprite_selected->setPosition(sprite->getContentSize().width / 2, sprite->getContentSize().height);
	sprite->addChild(sprite_selected);
	sprite_selected->setVisible(false);

	



	hp_sprite_2 = Sprite::createWithSpriteFrameName("MonsterHP02.png");
	hp_sprite_2->setPosition(Vec2(sprite->getContentSize().width / 4, sprite->getContentSize().height - 5));
	sprite->addChild(hp_sprite_2);
	hp_sprite_1 = Sprite::createWithSpriteFrameName("MonsterHP01.png");
	hp_sprite_1->setPosition(Vec2(sprite->getContentSize().width / 4, sprite->getContentSize().height - 5));
	sprite->addChild(hp_sprite_1);
	hp_sprite_1->setAnchorPoint(Vec2(0, 0.5));
	hp_sprite_2->setAnchorPoint(Vec2(0, 0.5));
	hp_sprite_1->setScaleY(0.7);




	sprite_effect_slow = Sprite::createWithSpriteFrameName("PShit-12.png");
	sprite->addChild(sprite_effect_slow);

	auto ani1 = Animation::create();
	ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PShit-12.png"));
	ani1->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("PShit-11.png"));

	ani1->setDelayPerUnit(0.1);
	ani1->setRestoreOriginalFrame(false);
	ani1->setLoops(-1);
	sprite_effect_slow->runAction(Animate::create(ani1));
	sprite_effect_slow->setPosition(sprite->getContentSize().width / 2, 20);


	sprite_effect_slow->setVisible(false);



	hp_sprite_1->setVisible(false);
	hp_sprite_2->setVisible(false);
















	/*init Õ¼ÓÃλÖÃ*/

	queue_takeplace_pos.push_back(Vec2(PublicFunc::convertToX(pos.x),PublicFunc::convertToY(pos.y)));



	for (int i = 0;i<queue_takeplace_pos.size(); i++)
	{
		sce->data->push_back(queue_takeplace_pos[i]);
	}

}
Beispiel #30
0
void  Tower_Pin::setLevel(int lev)
{
	sprite->stopAllActions();

	view_click = 0;


	switch (lev)
	{
	case 1:
	{
			  sprite->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("Pin11.png"));
			  sprite_base->setNormalImage(Sprite::createWithSpriteFrameName("Pin-11.png"));
			  sprite_base->setSelectedImage(Sprite::createWithSpriteFrameName("Pin-11.png"));


	}break;
	case 2:
	{
			  sprite->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("Pin21.png"));
			  sprite_base->setNormalImage(Sprite::createWithSpriteFrameName("Pin-12.png"));
			  sprite_base->setSelectedImage(Sprite::createWithSpriteFrameName("Pin-12.png"));


	}break;
	case 3:
	{
			  sprite->setSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("Pin31.png"));
			  sprite_base->setNormalImage(Sprite::createWithSpriteFrameName("Pin-13.png"));
			  sprite_base->setSelectedImage(Sprite::createWithSpriteFrameName("Pin-13.png"));

	}break;
	}


	if (lev == 1)
	{
		auto ani = Animation::create();
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air11.png"));
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air12.png"));
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air13.png"));
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air14.png"));
		ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air15.png"));


		ani->setDelayPerUnit(0.07);
		ani->setRestoreOriginalFrame(true);
		ani->setLoops(1);


		/* BUG  TMP FIX*/

		if (effect == 0)
		{

			effect = Sprite::create();
			effect->setPosition(sprite->getPosition());
			sprite->getParent()->addChild(effect);
			effect->runAction(Animate::create(ani));
		}
		else
		{
			effect->removeFromParentAndCleanup(true);

			effect = Sprite::create();
			effect->setPosition(sprite->getPosition());
			sprite->getParent()->addChild(effect);
			effect->runAction(Animate::create(ani));


		}
	}
	else
	{
		//if (this->level < lev)
		{

			auto ani = Animation::create();
			ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air11.png"));
			ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air12.png"));
			ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air13.png"));
			ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air14.png"));
			ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("air15.png"));

			ani->setDelayPerUnit(0.03);
			ani->setRestoreOriginalFrame(true);
			ani->setLoops(1);





			/* BUG  TMP FIX*/

			if (effect == 0)
			{

				effect = Sprite::create();
				effect->setPosition(sprite->getPosition());
				sprite->getParent()->addChild(effect);
				effect->runAction(Animate::create(ani));
			}
			else
			{
				effect->removeFromParentAndCleanup(true);

				effect = Sprite::create();
				effect->setPosition(sprite->getPosition());
				sprite->getParent()->addChild(effect);
				effect->runAction(Animate::create(ani));


			}

		}
	}



	this->level = lev;
	initTowerBase();




}