シンプルな 2D ゲームの目的で、クライアント プログラムが常に座標をサーバーに送信する必要があります。
そこで、サーバーから値を送信および取得することで、両方のプレイヤーの速度を同じにすることができるかどうかを確認するテストを作成しました。
package main;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class DataSender implements Runnable{
private DataInputStream fromServer;
private DataOutputStream toServer;
Player player;
Player opponent;
public DataSender(DataInputStream fromServer, DataOutputStream toServer, Player player, Player opponent){
this.fromServer = fromServer;
this.toServer = toServer;
this.player = player;
this.opponent = opponent;
}
@Override
public void run() {
while(true){
try {
toServer.writeInt(player.velX);
} catch (IOException e) {
e.printStackTrace();
}
try {
opponent.velX = fromServer.readInt();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
ループは、while(true)
スレッドの作成時に 1 回だけ実行されます。一定のデータ ストリームを確立するにはどうすればよいですか?