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回)のおまけ記事です。   面白くないゲームを面白くするためには?というテ …

スプライトシート作成

Cocos2d-x スプライトシートを作成して画像を楽に管理したい

Cocos2d-x スプライトシートを作成して画像を楽に管理したい この記事では、スプライトシートの作成方法と、スプライトシートを利用することのメリットについて紹介します。     …

cocos2dx

Cocos2d-x カスタムイベントを削除するタイミング

こんにちは、akiです。 この記事ではカスタムイベントを削除するタイミングについて説明します。   掲題の通り、カスタムイベントを登録した場合、不要になった際に明示的に削除してやる必要があり …

Cocos2d-x iOS アプリ名(アプリのアイコン名)のローカライズ方法

こんにちは。akiです。 この記事ではCocos2d-xでのアプリ名(アプリのアイコン名)のローカライズについて説明します。デバイスの環境に応じて一つのアプリのタイトル名を、日本語と英語でそれぞれ表示 …

ボールの進行方向

ゲーム制作 Cocos2d-x関連 第6回 「画面端でのボールの跳ね返り」

今回は画面端でのボールの跳ね返りを製作していきましょう。   前回ではボールを弾くと、二度と触れられないところまで去って行ってしまいましたね。それでは早速やっていきましょう。   …