2016-03-19 3 views
1

こんにちはI`m作業のMultyPlayerGameに接続されており、私はクライアントを必要なときにサーバからデータを取得します。彼らは今、どのようにサーバー(AndEngineマルチプレイ)クライアントAndEngineマルチプレイ拡張についてを使用して、サーバー

に接続したときに、サーバからのいくつかのデータを入手サーバーからデータを取得できますか?これは助けることができる

// Listener - states when we (as a client) have connected to a server 
@Override 
public void onStarted(ServerConnector<SocketConnection> pServerConnector) { 
    Log.i(TAG, "Connected To :" + pServerConnector.getConnection().getSocket().getInetAddress().getHostAddress().toString()); 

} 

そして

// Listener - In the event of a client connecting 
    @Override 
    public void onStarted(ClientConnector<SocketConnection> pClientConnector) { 
     Log.i(TAG, "Client Connected From : " + pClientConnector.getConnection().getSocket().getInetAddress().getHostAddress()); 
    } 
+0

Volley http://developer.android.com/training/volley/index.htmlを見てください。もちろん、データを提供するためのサーバー機能も必要です。 RESTサービスについての文献は、そのタスクの良いスタートになるかもしれません。 – TAM

+0

TnxについてAndEngine(Android用2Dゲームエンジン)、ローカルネットワーク上のソケットプログラミングなので、Vollyを考えないでください! – Criss

答えて

0

、しかし、いくつかのものが必要です。私は、サーバー

に接続されたクライアントは、ちょうどこのコードがある場合にはいくつかのintや文字列データを取得する必要があります変更:

// Listener - In the event of a client connecting 
    @Override 
    public void onStarted(ClientConnector<SocketConnection> pClientConnector) { 
     Log.i(TAG, "Client Connected From : " + pClientConnector.getConnection().getSocket().getInetAddress().getHostAddress()); 
     String clientIp = pClientConnector.getConnection().getSocket().getInetAddress().getHostAddress().toString(); 

     if (MultiplayerExtensionBaseGame.mClient != null) { 
      MultiplayerExtensionBaseGame.heroType = ++MultiplayerExtensionBaseGame.heroType; 
      Log.i("HTI", "" + MultiplayerExtensionBaseGame.heroType); 
     } 

     if (MultiplayerExtensionBaseGame.mClient != null) { 
      AddSpriteClientMessage message = (AddSpriteClientMessage) MultiplayerExtensionBaseGame.mMessagePool.obtainMessage(ClientMessages.CLIENT_MESSAGE_ADD_SPRITE); 
      message.set(MultiplayerExtensionBaseGame.CLIENT_ID, mEngine.getCamera().getCenterX() - 250, mEngine.getCamera().getHeight() - (50 * MultiplayerExtensionBaseGame.heroType), 
        MultiplayerExtensionBaseGame.heroType); 


MultiplayerExtensionBaseGame.mClient.sendMessage(message); 
     MultiplayerExtensionBaseGame.mMessagePool.recycleMessage(message); 
    } 
} 

そして次に

int type = message.getSpriteType(); 

         switch (type) { 
          case 1: 
           AnimatedSprite sBox = new AnimatedSprite(message.getX(), message.getY(), MultiplayerExtensionBaseGame.rBox, mEngine.getVertexBufferObjectManager()); 
           sBox.setUserData("ServerHero"); 
           sBox.animate(150); 
           mScene.attachChild(sBox); 
           break; 
          case 2: 
           AnimatedSprite sCircle = new AnimatedSprite(message.getX(), message.getY(), MultiplayerExtensionBaseGame.rCircle, mEngine.getVertexBufferObjectManager()); 
           sCircle.setUserData("ClientHero_1"); 
           sCircle.animate(150); 
           mScene.attachChild(sCircle); 
           break; 
          case 3: 
           AnimatedSprite sTriangle = new AnimatedSprite(message.getX(), message.getY(), MultiplayerExtensionBaseGame.rTriangle, mEngine.getVertexBufferObjectManager()); 
           sTriangle.setUserData("ClientHero_2"); 
           sTriangle.animate(150); 
           mScene.attachChild(sTriangle); 
           break; 
         }