Cocos2d-x 不要なHelloWorldScene(サンプルクラス)を削除する

cocos newコマンドでプロジェクトを作成
プロジェクト名は「Label」で、一意に特定するためのパッケージ名「net.tks2.projects」です。言語はC++なので「cpp」とします。次のコマンドを実行してください。
パッケージ名はiOS/Androidともに、実際にAppStore(GooglePlayStore)に登録する際に必要なモノです。Xcode上からでもプロジェクトを作成できますが、クロスプラットフォーム(Android)開発を行うのでcocos newコマンドを利用しています。


cocos newコマンド
cocos new Label -d ~/Documents -p net.tks2.projects -l cpp

 

コマンドが正常に完了するとDocumentsディレクトリにLabelフォルダーが作成されproj.ios_mac/Label.xcodeprojが作成されます。

Documents/Label/proj.ios_mac/Label.xcodeproj


iOS向けプロジェクトをXcodeで開きます。

 

不要なサンプルクラスを削除する
HelloWorldScene.cppとHelloWorldScene.hを選択し右クリックでファイル一覧を出しDeleteをクリックする。


Move to Trash(ゴミ箱に移動)を選択し削除する。

AppDelegateクラスで1件のエラー(HelloWordScene.hが見つからない)が発生しますが、この時点では気にしなくても大丈夫です。

 

続いてLabelを実装するクラスを用意します。フォルダーを選択し右クリックでファイル一覧を出しNew File...をクリックします。

 

追加するファイルの種類はC++のクラスなので続いてLabelを実装するクラスを用意します。iOSのSourceを選択しC++ Fileをクリックします。

 

追加するファイル名を入力します。ここではTopとします。Nextボタンをクリックします。


Classesのフォルダー内に作成します。Createボタンをクリックします。


ファイル作成後、ひな形となるコードが表示されていますが、それらすべて削除して、それぞれ次に示すコードを入力してください。なお、ヘッダーにはLayerクラスを継承するTopクラスとメンバ関数の宣言を、実装部にはscene関数とinit関数の最小限の実装を行います。

Top.h

 

#ifndef __Label__Top__

#define __Label__Top__


#include "cocos2d.h"


class Top : public cocos2d::Layer

{

public:

    // 初期化のメソッド

    virtual bool init();

    

    static cocos2d::Scene* createScene();

    // create()を使えるようにしている。

    CREATE_FUNC(Top);

};



#endif /* defined(__Label__Top__) */

 

 

 

Top.cpp

 

#include "Top.h"


USING_NS_CC;


SceneTop::createScene()

{

    // 「シーン」は自動解放オブジェクトです

    auto scene = Scene::create();

    

    // 「レイアウト」は自動解放オブジェクトです

    auto layer = Top::create();

    

    // シーンに子としてレイヤーを追加

    scene->addChild(layer);

    

    // シーンを返す

    return scene;

}



// INIT」初期化

bool Top::init()

{

    if ( !Layer::init() )

    {

        return false;

    }

        

    return true;

}


これでTopクラスの用意が出来ました。

 

HelloWorldSceneクラスを削除した際にエラーが発生しました。AppDelegate.cppのエラー箇所の修正を行います。

#include "HelloWorldScene.h"

                  ↓変更

#include "Top.h"

 

"HelloWorldScene.h"を"Top.h"に変更します。

 

AppDelegate.cppのapplicationDidFinishLaunching関数内でエラーが発生します。

エラー箇所の修正を行います。

auto scene =  HelloWorldScene::createScene();

                  ↓変更

auto scene =  Top::createScene();


"HelloWorldScene"を"Top"に変更します。


ビルド&実行後の表示

まだ画面が真っ暗です。
ここでは、TopSceneクラスの画面が表示されていますが、このクラスは必要最小限の実装だけです。これで開発の準備は整いましたので、Xcodeの左上にある[Stop]ボタンをクリックするか、メニューから[Product]→[Stop]を選択してiOSシミュレータを停止します。

これをひな形にして開発していけば良いでしょう。


▫️参考ページ

クラスを作成する

  

目 次