Cocos2dx 《基礎》 特殊的動作

2021-08-19 16:22:23 字數 3743 閱讀 8624

物件做變速運動

a.  easesinein ----> 物體先慢後快 

b.  easesineout---> 物體先快後慢

c.  easesineinout-> 物體執行sine運動

auto spriteframe = spriteframe::create("mp.png", rect(0, 81.25 * 2, 81.25, 81.25));

auto sprite1 = sprite::createwithspriteframe(spriteframe);

sprite1->setposition(vec2(100, 500));

this->addchild(sprite1);

auto sprite2 = sprite::createwithspriteframe(spriteframe);

sprite2->setposition(vec2(100, 300));

this->addchild(sprite2);

//執行特殊的動作

auto move = moveby::create(4,vec2(650,0));

sprite1->runaction(move);

auto easein = easesineout::create((moveby*)move->clone());

sprite2->runaction(easein);

彈跳運動

a. easebouncein----->開始的時候彈跳幾下,然後進入

b. easebounceout----->開始的時候進入,結束的時候彈跳幾下

c. easebounceinout--->開始的時候彈跳幾下,然後進入,結束的時候再彈跳幾下

auto spriteframe = spriteframe::create("mp.png", rect(0, 81.25 * 2, 81.25, 81.25));

auto sprite1 = sprite::createwithspriteframe(spriteframe);

sprite1->setposition(vec2(100, 500));

this->addchild(sprite1);

auto sprite2 = sprite::createwithspriteframe(spriteframe);

sprite2->setposition(vec2(100, 300));

this->addchild(sprite2);

//執行特殊的動作

auto move = moveby::create(4,vec2(650,0));

sprite1->runaction(move);

auto easein = easebouncein::create((moveby*)move->clone());

sprite2->runaction(easein);

指數運動,變化大

a. easeexponentialin----> 剛開始慢,後面非常快

b. easeexponentialout----> 剛開始非常快,後面慢

c. easeexponentialinout----> 剛開始慢,然後非常快,最後慢

auto spriteframe = spriteframe::create("mp.png", rect(0, 81.25 * 2, 81.25, 81.25));

auto sprite1 = sprite::createwithspriteframe(spriteframe);

sprite1->setposition(vec2(100, 500));

this->addchild(sprite1);

auto sprite2 = sprite::createwithspriteframe(spriteframe);

sprite2->setposition(vec2(100, 300));

this->addchild(sprite2);

//執行特殊的動作

auto move = moveby::create(4,vec2(650,0));

sprite1->runaction(move);

auto easein = easeexponentialinout::create((moveby*)move->clone());

sprite2->runaction(easein);

橡皮筋效果

a. easeelasticin----->剛開始拉伸,然後運動

b. easeelasticout----->剛開始運動,後面拉伸

c. easeelasticinout---->剛開始拉伸,然後運動,最後拉伸

auto spriteframe = spriteframe::create("mp.png", rect(0, 81.25 * 2, 81.25, 81.25));

auto sprite1 = sprite::createwithspriteframe(spriteframe);

sprite1->setposition(vec2(100, 500));

this->addchild(sprite1);

auto sprite2 = sprite::createwithspriteframe(spriteframe);

sprite2->setposition(vec2(100, 300));

this->addchild(sprite2);

//執行特殊的動作

auto move = moveby::create(4,vec2(650,0));

sprite1->runaction(move);

auto easein =easeelasticout::create((moveby*)move->clone());

sprite2->runaction(easein);

稍微彈跳

a. easebackin---->剛開始稍微彈跳,然後運動

b. easebackout---->剛開始運動,然後稍微彈跳

c. easebackinout-->剛開始稍微彈跳,然後運動,最後再稍微彈跳

auto spriteframe = spriteframe::create("mp.png", rect(0, 81.25 * 2, 81.25, 81.25));

auto sprite1 = sprite::createwithspriteframe(spriteframe);

sprite1->setposition(vec2(100, 500));

this->addchild(sprite1);

auto sprite2 = sprite::createwithspriteframe(spriteframe);

sprite2->setposition(vec2(100, 300));

this->addchild(sprite2);

//執行特殊的動作

auto move = moveby::create(4,vec2(650,0));

sprite1->runaction(move);

auto easein = easebackout::create((moveby*)move->clone());

sprite2->runaction(easein);

cocos2d x 跟隨動作

ccfollow 乙個節點跟隨另外乙個節點的動作。定義第乙個引數是要跟隨的節點,第二個引數是運動的邊界。如果沒有傳入邊界,則視為沒有邊界。bool helloworld init ccsprite spr ccsprite create icon.png spr setposition ccp 10...

cocos2dx動作框架分析

cocos2dx提供了豐富的動作實現的類。其中最主要的兩個類是 ccaction和 ccactionmanager,ccaction是所有動作的基類,類中有幾個很重要的方法 virtual void startwithtarget ccnode ptarget 設定動作的目標virtual void...

Cocos2d x動作學習筆記

action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相...