Cocos2d-xで
簡単なゲームを作ってみよう!

    株式会社TKS2 清水友晶
清水 友晶
(株)TKS2
スマートフォンアプリ開発
iOS, Android, (Windows Phone 8)
Webコンテンツ
Twitter: tks2shimizu
facebook:
http://www.facebook.com/doraemonsss
slide share:
http://www.slideshare.net/doraemonsss
                                        2
資料のダウンロード
     TKS2ホームページ
      http://tks2.net




                        3
目次
ゲームの説明        19:30
必要なクラスの説明
ゲーム作成
 カードの配置       20:20
 カードのタップ      20:40
 時間表示         21:00
 ハイスコア表示      21:20
 ゲームのリトライ     21:40
                      4
ゲームの説明
1から25まで順番にタップするカードゲーム
今回の対象はiPhone4を想定
iPhoneシミュレータではiPhone(Retina 3.5inch)




                                       5
カードの配置に必要なクラスの説明
CCSpriteクラス
  create関数
  CCSprite* button =
   CCSprite::create("xxx.png");

  setPosition関数
  button->setPosition(ccp(100,200));
  setTag関数
  button->setTag(10);
                                       6
カードの配置に便利なクラスの説明
CCStringクラス
  create関数
  CCString* string =
   CCString::create("xxxxxx");
  createWithFormat関数

  CCString* string =
   CCString::createWithFormat(
    "frontside%02d.png", 10);

                                 7
カードのタップに必要なクラスの説明
 CCLayerクラス
    setTouchEnabled関数


this->setTouchEnabled(true);
this->setTouchMode(kCCTouchesOneByOne);


                          とすると、

                                          8
カードのタップに必要なクラスの説明

 タップ時に次のイベントが発生する
  ccTouchBegan関数
  ccTouchMoved関数
  ccTouchEnded関数
  ccTouchCancelled関数

 マルチタップは別の関数
                       9
時間カウントに必要なクラスの説明
CCNodeクラス
 schedule関数
 this->schedule(
  schedule_selector(
   HelloWorld::countTimer));
 countTimer関数(関数名は任意)
 void
 HelloWorld::countTimer(float time) {
     gameTime += time;
 }
                                        10
時間カウントに必要なクラスの説明
CCNodeクラス
 unschedule関数
  this->unschedule(
   schedule_selector(
    HelloWorld::countTimer));




                                11
永続データに必要なクラスの説明
CCUserDefaultクラス(シングルトン)
  getFloatForKey関数
 float hoge =
  CCUserDefault::sharedUserDefault()->
   getFloatForKey("xxx", 0);
  setFloatForKey関数
  flush関数
 CCUserDefault::sharedUserDefault()->
  setFloatForKey("xxx", 10.5f);
 CCUserDefault::sharedUserDefault()->
  flush();
                                         12
ボタンの作成に必要なクラスの説明
CCMenuItemFontクラス
  create関数
   CCMenuItemFont* item =
    CCMenuItemFont::create(
     "xxx", this,
     menu_selector(HelloWorld::yyy));
CCMenuクラス
   CCMenu* menu =
    CCMenu::create(item, NULL);
   menu->setPosition(CCPointZero);
   this->addChild(menu);
                                        13
ゲームを作ってみよう!

まずはカードの配置
20:20に解説


カードのダウンロードは
http://tks2.net/other/cards.zip

                                  14
ここまでのコード
カードの配置
https://gist.github.com/4239354

次はカードのタップ
20:40に解説

カードのダウンロードは
http://tks2.net/other/cards.zip

                                  15
ここまでのコード
カードのタップ
https://gist.github.com/4239351

次は時間表示
21:00に解説

カードのダウンロードは
http://tks2.net/other/cards.zip

                                  16
ここまでのコード
時間表示
https://gist.github.com/4239350

次はハイスコア表示
21:20に解説

カードのダウンロードは
http://tks2.net/other/cards.zip

                                  17
ここまでのコード
ハイスコア表示
https://gist.github.com/4239338

次はゲームのリトライ
21:40に解説

カードのダウンロードは
http://tks2.net/other/cards.zip

                                  18
できあがりのコード

できあがり
https://gist.github.com/4238817




                                  19
今後の予定

Cocos2d-xをもっとさわってみる
Cocos2d-xの拡張
外部ツールの利用
Box2Dの利用
OSとの連携

                      20

Cocos2d xで簡単なゲームを作ってみよう!