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】
更新履歴
- 2015年1月29日 : Jniを利用する
- 2015年1月27日 : デバックのための、ログの利用
- 2015年1月24日 : Android – 新規ファイルの追加と保存場所
- 2014年6月13日 : OSを判別する
- 2014年6月13日 : 効果音を再生する