• TOP
  • >
  • その他
  • >
  • Actionを利用する

Actionを利用する

前回に引き続きオブジェクトを動かす方法を考えます。

今回はCCActionを使ったオブジェクトの移動です。

CCActionのCCMoveTo、CCMoveBy

cocos2d-xでは,オブジェクトに色々なアクションをさせるCCActionクラスがあります。これを上手く組み合わせれば、今回は紹介する「オブジェクトを動かす」以外にも様々なことができます。

CCMoveTo

CCMoveToクラスは、移動時間と、移動先をCGPoint型で指定します。
//1秒をかけて、(100,200)の位置に移動します。

//cocos2dx3.x
sprite->runAction(MoveTo::create(1.0f,Point(100,200)));


//cocos2dx2.x
sprite->runAction(CCMoveTo::create(1.0f, ccp(100,200)));


CCMoveBy

CCMoveByクラスは、移動時間と、移動距離をCGPoint型で指定します。
//1秒をかけて、<span style="color:red;font-weight:bold;">現在の位置</span>から(100,200)移動します。

//cocos2dx3.x
sprite->runAction(MoveBy::create(1.0f,Point(100,200)));


//cocos2dx2.x
sprite->runAction(CCMoveBy::create(1.0f, ccp(100,200)));



例:タッチした位置にオブジェクトを移動させる。

具体的な利用方法として、画面をタッチした場所にオブジェクトが動くというコードを書きます。
【cocos2dx3.x】
void HelloWorldLayer::onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *event){
    
     //タッチをした場所の位置情報を取得
     auto location = touch->getLocation();
     
   //オブジェクトに実行させる
     sprite->runAction(MoveTo::create(1.0f, location));
     

}

【cocos2dx2.x】
void HelloWorldLayer::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){
    
     //タッチをした場所の位置情報を取得
     CCPoint point = this->convertTouchToNodeSpace(pTouch);
     
   //オブジェクトに実行させる
     sprite->runAction(CCMoveTo::create(1.0f, point));
     

}


            

経営育成ゲーム「わたしの動物園」をリリースしました!

cocos2dxを使って作成したアプリを作成しました。
無料で遊べますので、ぜひゲーム作りの参考にしてみて下さい!

【Sponsored Link】

更新履歴