Skip to main content
このクイックスタートでは、Cocos2d-x エンジンで最初の PlayFab API 呼び出しを行うのを支援します。 PlayFab API を呼び出す前に、PlayFab 開発者アカウント が必要です。

Cocos2d-x プロジェクトのセットアップ

OS: このガイドは Visual Studio 2015 を使用する Windows 10 向けに書かれています。Cocos はほとんどの最新の OS と環境で動作します。インストール手順は似ていますが、それぞれの組み合わせで異なります。 他のプラットフォーム向けにビルドする場合、必要なファイルは同じですが、プロジェクトのセットアップは自分で行う必要があります。Visual Studio 2013 でも手順は同一ですが、ここで提供されるスクリーンショットとは少し異なる場合があります。
  1. Cocos2d-x をダウンロードしてインストールします
  2. Cocos2d-x を構成したら、Cocos CLI を使用してプロジェクトを作成します:
    • Cocos プロジェクトを保存したい場所に移動します
    • 親フォルダーでコマンド ウィンドウを開きます (Cocos CLI が実際のプロジェクト ディレクトリを作成します)
      • Shift キーを押しながら、エクスプローラー ウィンドウの空の白いスペースを右クリックします。
    • 新しいコンソール ウィンドウで次のコマンドを入力します:
      • cocos new CocosGettingStarted -l cpp
        • ターゲットのサブディレクトリ (CocosGettingStarted) がすでに存在していないことを確認してください。フォルダーがすでに存在する場合、このコマンドは失敗します。
        • “‘cocos’ は、内部コマンドまたは外部コマンドとして認識されていません” というメッセージが表示された場合、cocos のインストールが正しく構成されていません (Cocos の Windows インストール ガイドに戻ってください)。
        • 成功すると、新しいフォルダー CocosGettingStarted が作成されます。このガイドでは、そのディレクトリの場所を {CocosGettingStarted} として参照します。
    • 成功時の出力は以下の例のようになります。
  1. PlayFab Cocos2d-xSdk をダウンロードします: Cocos2D-x SDK (C++)。一時的な場所 {PlayFabCocos} に保存して展開します
    • Windows エクスプローラーで次のフォルダーを開きます: {PlayFabCocos}/PlayFabClientSDK
    • 別の Windows エクスプローラーで次のフォルダーを開きます: {CocosGettingStarted}/Classes
  2. {PlayFabCocos}/PlayFabClientSDK のすべてのファイルを {CocosGettingStarted}/Classes にコピーして貼り付けます
  3. Visual Studio で {CocosGettingStarted}/proj.win32/CocosGettingStarted.sln を読み込みます。
  4. PlayFab ファイルを Cocos プロジェクトに追加します。
  5. Visual Studio のソリューション エクスプローラー パネルで、Solution/CocosGettingStarted/src フォルダーまで展開します
  6. {CocosGettingStarted}/Classes で Windows エクスプローラー ウィンドウを開きます
    • AppDelegate.h、AppDelegate.cpp、HelloWorldScene.h、HelloWorldScene.cpp を除く {CocosGettingStarted}/Classes 内のすべてのファイルを選択します
    • それらすべてのファイルをエクスプローラーから上記の Visual Studio Solution/CocosGettingStarted/src フォルダーへドラッグ アンド ドロップします。問題が発生した場合は、1 つずつファイルをドラッグ アンド ドロップできます。ただし、すべてのファイルを確実に追加してください
    • VS プロジェクトに次のファイルが表示されるはずです:
PlayFab は依存関係リストに手動で追加する必要のあるいくつかの Cocos ライブラリを使用します。
  • CocosGettingStarted プロジェクトの プロパティ ウィンドウを開きます (下記参照)。
  • [追加のインクルード ディレクトリ] を次のように置き換えます: $(ProjectDir)..\cocos2d\external\zlib\include;$(ProjectDir)..\cocos2d\external\curl\include\win32;$(EngineRoot)cocos\audio\include;$(EngineRoot)external;$(EngineRoot)external\chipmunk\include\chipmunk;$(EngineRoot)extensions;..\Classes;..;%(AdditionalIncludeDirectories);$(_COCOS_HEADER_WIN32_BEGIN);$(_COCOS_HEADER_WIN32_END);..\cocos2d
Cocos に同梱されているが既定では有効になっていないライブラリである curl と zlib を追加しています。
CocosGettingStarted プロジェクトはこれでコンパイル (および実行) できるはずですが、まだ PlayFab API 呼び出しは行っていません。 インストール完了!

最初の API 呼び出しの設定

このガイドでは、最初の PlayFab API 呼び出しを行うための最小限の手順を提供します。確認結果はアプリで表示されます。
  1. Visual Studio で、Solution/CocosGettingStarted/src フォルダー内の HelloWorldScene.h を開き、内容を次のように置き換えます:
    • Visual Studio で、Solution/CocosGettingStarted/src フォルダー内の HelloWorldScene.h を開き、内容を下記に示されているものに置き換えます。
  1. その直後に、HelloWorldScene.cpp を開き、内容を次のように置き換えます:
これらのファイルは、新しい Cocos プロジェクト テンプレートに含まれる既存の HelloWorldScene を取得し、最初の PlayFab API 呼び出しを含むように変更します。

完了と実行

  1. Cocos プロジェクトをビルドおよび実行します: ドロップダウン -> [デバッグ] -> [デバッグの開始]。
  2. ビルドを促すプロンプトが表示されます。[はい] を選択します。
  3. 次のような画面が表示されるはずです: Congratulations, you made your first successful API call!
  4. これで、他の API 呼び出しを始めて、ゲームをビルドできます。
    利用可能なすべてのクライアント API 呼び出しの一覧については、PlayFab API リファレンス ドキュメントを参照してください。
Happy coding!

コードの分解

このオプションの最後のセクションでは、上記のソース コードの各部分を詳細に説明します。
  • HelloWorldScene.h
    • これは Cocos によって生成された既定の HelloWorldScene.h からわずかに変更されているだけです。
    • 具体的には、使用している一部の Cocos GUI と、OnLoginSuccess および OnLoginFail のプロトタイプを定義しています。
    • それ以外はすべて標準の Cocos Engine 関数です。
  • HelloWorldScene.cpp
    • createScene() は標準の Cocos Engine 関数です。
    • init()
      • 通常の Cocos GUI 関連: closeItemtestReportLabel
      • PlayFab::PlayFabSettings::titleId = "xxxx";
        • すべての PlayFab 開発者は Game Manager でタイトルを作成します。ゲームを公開する際、その titleId をゲームにコーディングする必要があります。これによりクライアントは PlayFab 内の正しいデータにアクセスする方法を知ることができます。ほとんどのユーザーにとって、これは PlayFab を機能させるために必須のステップと考えてください。
      • PlayFab::ClientModels::LoginWithCustomIDRequest request;
        • ほとんどの PlayFab API メソッドは入力パラメーターを必要とし、それらの入力パラメーターはリクエスト オブジェクトにパックされます。
        • すべての API メソッドは、オプションおよび必須パラメーターの組み合わせを持つ独自のリクエスト オブジェクトを必要とします。
          • LoginWithCustomIDRequest には、プレイヤーを一意に識別する必須パラメーター CustomId と、この呼び出しで新しいアカウントの作成を許可する CreateAccount があります。
        • ログインの場合、ほとんどの開発者はより適切なログイン方法を使用したいと思うでしょう。
          • すべてのログイン方法と入力パラメーターの一覧については、PlayFab Login ドキュメントを参照してください。一般的な選択肢は次のとおりです:
            • LoginWithAndroidDeviceID
            • LoginWithIOSDeviceID
            • LoginWithEmailAddress
      • PlayFab::PlayFabClientAPI::LoginWithCustomID(request, OnLoginSuccess, OnLoginFail, nullptr);
        • これは LoginWithCustomID への非同期リクエストを開始し、完了時に OnLoginSuccess または OnLoginFail 関数を呼び出します。
    • update(float delta)
      • 単に statusMsg 変数を設定しても、画面上のテキストは更新されません。
      • この関数は、毎ティック GUI テキストを statusMsg の内容に合わせて設定します (あまり効率的ではありません)。
    • OnLoginSuccess(result, customData)
      • 成功コールバックが呼び出されると、多くの API コールバックの result オブジェクトには要求された情報が含まれます。
      • LoginResult にはプレイヤーに関するいくつかの基本情報が含まれていますが、ほとんどのユーザーにとって、ログインは他の API を呼び出す前の単なる必須ステップです。
    • OnLoginFail(error, customData)
      • エラー関数が呼び出された場合、API 呼び出しは失敗しています。
      • API 呼び出しは多くの理由で失敗することがあり、常に失敗を処理するように試みるべきです。
      • API 呼び出しが失敗する理由 (可能性の高い順)
        • PlayFabSettings.TitleId が設定されていない。titleId をタイトルに設定するのを忘れると、何も機能しません。
          • Cocos では、titleId を正しく設定できないと、curl ライブラリがゲームをクラッシュさせる可能性があります。
        • リクエスト パラメーター。特定の API 呼び出しに対して正しいまたは必要な情報を提供していない場合、失敗します。詳細については、error.errorMessageerror.errorDetails、または error.GenerateErrorReport() を参照してください。
        • デバイスの接続問題。携帯電話は接続を常に失ったり回復したりするため、いつでもどの API 呼び出しでもランダムに失敗し、その直後に機能することがあります。トンネルに入ると完全に接続が切れる場合もあります。
        • PlayFab サーバーの問題。すべてのソフトウェアと同様に、問題が発生する場合があります。更新については、リリース ノートを参照してください。
        • インターネットは 100% 信頼できるわけではありません。メッセージが破損したり、PlayFab サーバーに到達できないことがあります。
      • 問題のデバッグに困難があり、エラー コールバック内の情報が不十分な場合、フォーラムでご連絡ください。
    • customData は void ポインターであり、コンテキストを確立するために任意の方法で使用できます。
      • C++ では API 呼び出しのコンテキストを維持するのが困難なため、customData パラメーターを追加しました。これは任意のオブジェクトをコールバックに中継でき、コンテキストを確立するために好きに使用できます。
      • したがって、インベントリを取得するために API 呼び出しを行う場合、プレイヤーまたはインベントリのポインターを customData として渡し、コールバックでそのオブジェクトのインベントリを更新できます。
最終更新日 2026年8月25日