Cocos2d-x

Cocos2d-x クライアント側のHttpレスポンス処理

投稿日:

cocos2dx

この記事は「Cocos2d-x セーブデータをサーバに送信して保存する」の続きになります。

・第1回 : サーバにデータを保存したい理由と全体の流れ

・第2回 : クライアント側の処理とデータ送信(Httpリクエスト)

・第3回 : サーバ側の処理とデータ送信(Httpレスポンス)

・第4回 : クライアント側のレスポンス処理(ここ)

 

 

クライアント側のHttpレスポンス処理

サーバからのHttpレスポンスを受けた際の、クライアント側のHttpレスポンス処理を記述します。

flow_4

 

レスポンスコールバックの利用

Httpレスポンスを受け取ったタイミングでクライアント側の処理を実行するために、Cocos2d-xのHttpレスポンスコールバックを利用します。

Httpレスポンスコールバック


 // コールバックの設定
 r->setResponseCallback([this](cocos2d::network::HttpClient* client, cocos2d::network::HttpResponse* response){
     if(response->isSucceed()){
         return true;
     }else{
         return false;
     }
 });

 

 

クライアント側の最終的なプログラムの実装

    #include "HttpClient.h"
    #include "cocos-ext.h"
    #include "spine/Json.h"

    using namespace cocos2d::network;
    using namespace cocos2d::extension;

 

    // URL、ヘッダの設定 
    auto r = new cocos2d::network::HttpRequest();
    r->setUrl("phpサーバのアドレス");
    std::vector<std::string> h;
    h.push_back("Content-Type: application/json");
    r->setHeaders(h);
    r->setRequestType(HttpRequest::Type::POST);
    
    // データの設定
    std::string level = "1";
    std::string hp = "20";
    std::string data = "[{\"level\":\"" + level + "\", \"hp\":\"" + hp + "\"}]";
    const char* buffer = data.c_str();
    r->setRequestData(buffer, strlen(buffer));
   
    // コールバックの設定
    r->setResponseCallback([this](cocos2d::network::HttpClient* client, cocos2d::network::HttpResponse* response){
        if(response->isSucceed()){
            return true;
        }else{
            return false;
        }
    });

    // データ送信
    network::HttpClient::getInstance()->send(r);
    r->release();


 

以上です。

PrainGoogleAdSense

PrainGoogleAdSense

-Cocos2d-x
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ゲームを面白くするために

ゲームを面白くするために意識する3つの要素

  この記事は、シリーズ記事 ゲーム制作 Cocos2d-x関連 第1回 「ゲームを作ろう!!」 (全18回)のおまけ記事です。   面白くないゲームを面白くするためには?というテ …

SDKBoxを使ってアプリ内課金をするやり方 インストール編

この記事では、アプリ課金のためのSDKBoxインストールのやり方を説明します。   環境 XCode:7.3.1 Cocos2d-x:3.9     SDKBoxについて …

ゲーム制作 Cocos2d-x関連 最終回 「勝利演出、敗北演出の追加」

勝利演出、敗北演出を実装していきます。今回で最終回です!     仕様の検討 1.バトル中、プレイヤーのHPが0になった場合 → 勝利演出 → 勝利演出中に画面をタップするとスター …

楽ちん

Cocos2d-x アニメーションの画像追加を楽に行う方法

  この記事では、楽してアニメーション機能を利用する方法について紹介します。   【前回まで】 ・第1回 : アニメーションを利用した回復エフェクトの表示方法 ・第2回 : 加算合成を利用し …

マップイメージ

ゲーム制作 Cocos2d-x関連 第14回 「プレイヤー攻撃によるダメージ計算、ターン交代」

今回はプレイヤーのターン、敵のターンを交互に行うようにしていきます。また、それぞれのターンで相手に攻撃を行い、ダメージ計算もしていきます。       ターン交代の仕様 …