cocos2dx 一步步入門 CCMoveTo/CCMoveBy/CCRotateTo/CCRotateBy
// on "init" you need to initialize your instance
bool HelloWorld::init() {
bool bRet = false;
do {
CC_BREAK_IF(!CCLayer::init());
// 添加關閉按鈕
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(HelloWorld::menuCloseCallback));
CC_BREAK_IF(!pCloseItem);
pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );
// 添加到菜單中
CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
CC_BREAK_IF(!pMenu);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu, 1);
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
float width = visibleSize.width;
float originX = CCDirector::sharedDirector()->getVisibleOrigin().x + width - 100 * 2;
float originY = CCDirector::sharedDirector()->getVisibleOrigin().y;
float height = visibleSize.height;
// grossini
m_pGrossiniSprite = CCSprite::create(s_pathGrossini);
CC_BREAK_IF(!m_pGrossiniSprite);
m_pGrossiniSprite->retain(); // 內存管理,需要保留
m_pGrossiniSprite->setPosition(ccp(originX / 3.f, originY + height / 2.f));
this->addChild(m_pGrossiniSprite);
/// CCMoveTo 表示將精靈的位置移動到500, 500的位置,不管當前什麼位置
CCFiniteTimeAction *pMoveTo = CCMoveTo::create(3.5f, ccp(500, 500));
CCFiniteTimeAction *pMoveBack = CCMoveTo::create(3.5, ccp(originX / 3.f,
originY + height / 2.f));
m_pGrossiniSprite->runAction(CCSequence::create(pMoveTo, pMoveBack, NULL));
// tamara
m_pTamaraSprite = CCSprite::create(s_pathGrossinisSister1);
CC_BREAK_IF(!m_pTamaraSprite);
m_pTamaraSprite->retain(); // 內存管理,需要保留
m_pTamaraSprite->setPosition(ccp(originX / 3 * 2.f, originY + height / 2.f));
this->addChild(m_pTamaraSprite);
/// CCMoveBy 表示從當前位置開始,x方向向右移動300,y方向向下移動200
CCFiniteTimeAction *pMoveBy = CCMoveBy::create(3.5f, ccp(300, -200));
CCFiniteTimeAction *pMoveByBack = CCMoveTo::create(3.5, ccp(originX / 3 * 2.f,
originY + height / 2.f));
m_pTamaraSprite->runAction(CCSequence::create(pMoveBy, pMoveByBack, NULL));
// kathia
m_pKathiaSprite = CCSprite::create(s_pathGrossinisSister2);
CC_BREAK_IF(!m_pKathiaSprite);
m_pKathiaSprite->retain(); // 內存管理,需要保留
m_pKathiaSprite->setPosition(ccp(originX / 3.f * 3, originY + height / 2.f));
this->addChild(m_pKathiaSprite);
/// CCRotateTo 表示旋轉到指定的角度(180)
/// CCRotateBy 表示從當前角度,繼續再旋轉指定的角度(180),那麼最終角度為180 + (-45) = 135
CCFiniteTimeAction *pRotateTo = CCRotateTo::create(3.5, 180);
CCFiniteTimeAction *pRotateBy = CCRotateBy::create(3.5, -45);
m_pKathiaSprite->runAction(CCSequence::create(pRotateTo, pRotateBy, NULL));
bRet = true;
} while (0);
return bRet;
}
看注釋!!!!
源代碼:https://download.csdn.net/detail/woaifen3344/7188071
最後更新:2017-04-03 12:56:09