libro
www.tuyano.com
初心者のためのCocos2d-xゲームプログラミング入門

ソースコードの基本を理解しよう (2/5)

作成:2015-05-23 09:07
更新:2015-05-23 09:07

■AppDelegate.hでアプリケーションクラスをチェック!

では、ソースコードを見ていきましょう。まずはアプリケーションのクラスである「AppDelegate」クラスからです。これはどんなクラスなのでしょうか。

下のリスト欄に、ヘッダーファイルである「AppDelegate.h」の内容を掲載しておきます(コメント関連は省略してあります)。これを見ながら、AppDelegateクラスの内容を考えていきましょう。

◎cocos2d::Applicationを継承する
このクラスは、cocos2d名前空間にある「Application」というクラスを継承して作られています。クラスの定義部分を見ると、こうなっていますね。
class  AppDelegate : private cocos2d::Application
このApplicationクラスは、アプリケーションクラスの土台となるもので、アプリケーションクラスは必ずこれを継承しておく必要があります。

◎コンストラクタ/デストラクタ
コンストラクタとデストラクタがあります。コンストラクタは、引数のないデフォルトコンストラクタだけが用意されています。このあたりはとてもシンプルですね。
AppDelegate();
virtual ~AppDelegate();

◎実装メソッド
実装されているメソッドの宣言は4つだけ。どれもアプリケーションの挙動に関するものです。アプリケーションの状況に応じて呼び出されるメソッド類ですね。
virtual void initGLContextAttrs();
これはOpenGLに関する各種設定を行うためのものです。Cocos2dは、内部でGLViewというOpenGLを使った画面表示のクラスを持っており、これを使って画面表示を行っています。このOpenGL利用の際の初期化処理などを行うのがこのメソッドです。
virtual bool applicationDidFinishLaunching();
これは、アプリケーションが起動された時の処理を行うためのものです。アプリケーションの起動が完了するとこのメソッドが呼び出されます。アプリの初期化処理などを用意します。(ただし、画面に表示されるものはここには用意しません)
virtual void applicationDidEnterBackground();
これは、アプリがバックグラウンドに回った際の処理を用意するものです。ゲームの状態は一時停止するのに必要な処理がここに用意されることになるでしょう。
virtual void applicationWillEnterForeground();
これは、アプリがバックグラウンドからフォアグラウンドに戻った時の処理を用意するものです。一時停止されていた状態を復元し、ゲームを再開するのに必要な処理などを用意することになるでしょう。


――いかがでしたか? いきなりややこしそうなメソッドなどがずらっと登場して面食らったかもしれません。が、はっきりいって、このAppDelegateクラスの内容は、実は当分、知る必要はありません。これを書き換えるようになるのは、ある程度ゲーム作成ができるようになってからでしょう。ですから、当面は忘れてしまってOKです。「こういうアプリ本体に関する機能があるらしい」程度に考えておけば十分でしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

#ifndef  _APP_DELEGATE_H_
#define  _APP_DELEGATE_H_

#include "cocos2d.h"

class  AppDelegate : private cocos2d::Application
{
public:
    AppDelegate();
    virtual ~AppDelegate();

    virtual void initGLContextAttrs();
    virtual bool applicationDidFinishLaunching();
    virtual void applicationDidEnterBackground();
    virtual void applicationWillEnterForeground();
};

#endif // _APP_DELEGATE_H_
※関連コンテンツ

「初心者のためのCocos2d-xゲームプログラミング入門」に戻る