schedule(ルート)を利用する
スプライトを動かす方法は大きく分けて2通りあります。
- ゲーム中に定期的に呼び出すメソッド(ルート)を作成する。
- CCActionクラスを利用する。
update
定期的にメソッドを呼び出す方法はいくつかあります。//init内に記入 this->scheduleUpdate();
//ヘッダー(.h)内 void update(float delta); //cpp内 void HelloWorldLayer::update(float delta){ //ここに記入されたモノを、定期的に呼び出す }
【例 cocos2dx3.x】
void HelloWorldLayer::update(float delta){ //メソッドが呼び出されるごとに、スプライトの位置を変えています。 //これが連続することで、なめらかに動いているように見えます。 sprite->setPosition(Point(sprite->getPositionX() + 100*delta, sprite->getPositionY())); //これは画面の右端に達したら、左端に位置を移動します。 if (sprite->getPositionX() > 480+64) { sprite->setPosition(ccp( -64, sprite->getPositionY())); } }
【例 cocos2dx2.x】
void HelloWorldLayer::update(float delta){ //メソッドが呼び出されるごとに、スプライトの位置を変えています。 //これが連続することで、なめらかに動いているように見えます。 sprite->setPosition(ccp(sprite->getPositionX() + 100*delta, sprite->getPositionY())); //これは画面の右端に達したら、左端に位置を移動します。 if (sprite->getPositionX() > 480+64) { sprite->setPosition(ccp( -64, sprite->getPositionY())); } }
例 動画
自分でメソッドを設定
また、以下のようにも設定ができます。この場合、メソッド名を自分で設定出来ます。
this->schedule(schedule_selector(HelloWorldLayer::move));
void HelloWorldLayer::move(float delta){ //ここに記入されたモノを、定期的に呼び出す }
自分でメソッドを設定する場合は、メソッドを呼び出すタイミングも設定出来ます
//第2引数で設定します。(1.0f毎に呼び出す) this->schedule(schedule_selector(HelloWorldLayer::moveTime), 1.0f);
例 動画
経営育成ゲーム「わたしの動物園」をリリースしました!
cocos2dxを使って作成したアプリを作成しました。
無料で遊べますので、ぜひゲーム作りの参考にしてみて下さい!
【Sponsored Link】
更新履歴
- 2015年1月29日 : Jniを利用する
- 2015年1月27日 : デバックのための、ログの利用
- 2015年1月24日 : Android – 新規ファイルの追加と保存場所
- 2014年6月13日 : OSを判別する
- 2014年6月13日 : 効果音を再生する