Prainブログ

ゲーム開発とかIT小話とかその他雑記のブログ

*

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();


 

以上です。

 -

        

Message

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

  関連記事

メモリー
Cocos2d-x アニメーションをバッファリングして、高速で安定した処理を行う方法

この記事では、Cocos2d-xにおけるアニメーションのバッファリングについて説 …

cocos2dx
Cocos2d-x クライアント側の処理とデータ送信(Httpリクエスト)

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

ゲーム制作 Cocos2d-x関連 第11回 「音楽、効果音を鳴らす」

いつになったらゲームで音楽を流せるようになるの~   最初に書籍でco …

タイムチャート
ゲーム制作 Cocos2d-x関連 第15回 「ダメージエフェクトの演出」

おそらくここが一番大変なところですが、ゲーム完成までもう一歩です!   …

Cocos2d-x モーダルレイヤーの作り方

この記事ではCocos2d-xによるモーダルレイヤー実装のやり方について説明しま …