您的位置:首页 > 移动开发 > Cocos引擎

cocos2d 动作切换

2014-09-25 09:04 155 查看
#include "HelloWorldScene.h"

USING_NS_CC;

CCScene* HelloWorld::scene()
{
CCScene *scene = CCScene::create();
HelloWorld *layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}

bool HelloWorld::init()
{

if ( !CCLayer::init() )
{
return false;
}

CCSize winSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("hero.plist");

tank=    CCSprite::createWithSpriteFrameName("hero_1.png");
tank->setPosition(ccp(winSize.width/2,winSize.height/2));
addChild(tank);

initCreep();
this->scheduleOnce(schedule_selector(HelloWorld::start), 3.0f);
this->scheduleOnce(schedule_selector(HelloWorld::stop), 6.0f);
this->scheduleOnce(schedule_selector(HelloWorld::restart), 9.0f);
this->scheduleUpdate();
return true;
}

void HelloWorld::initCreep()
{
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("hero.plist");

}

void HelloWorld::start(float t)
{
CCLOG("start");
CCAnimation* animation=CCAnimation::create();
CCSpriteFrame* frame1 = CCSpriteFrameCache::sharedSpriteFrameCache()
->spriteFrameByName("hero_1.png");
animation->addSpriteFrame(frame1);
CCSpriteFrame* frame2 = CCSpriteFrameCache::sharedSpriteFrameCache()
->spriteFrameByName("hero_2.png");
animation->addSpriteFrame(frame2);
animation->setDelayPerUnit(0.1);
animation->setRestoreOriginalFrame(true);
creep=CCRepeatForever::create(CCAnimate::create(animation));
tank->runAction(creep);
}

void HelloWorld::restart(float t)
{
CCLOG("restart");
CCAnimation* animation=CCAnimation::create();
CCSpriteFrame* frame1 = CCSpriteFrameCache::sharedSpriteFrameCache()
->spriteFrameByName("hero_1.png");
animation->addSpriteFrame(frame1);
CCSpriteFrame* frame2 = CCSpriteFrameCache::sharedSpriteFrameCache()
->spriteFrameByName("hero_2.png");
animation->addSpriteFrame(frame2);
animation->setDelayPerUnit(0.1);
animation->setRestoreOriginalFrame(true);
creep=CCRepeatForever::create(CCAnimate::create(animation));
tank->runAction(creep);
}

void HelloWorld::stop(float t)
{
CCLOG("stop");
tank->stopAction(creep);
}

void HelloWorld::update(float t)
{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: