ペイントするLibGDXアプリケーションと、クライアントまたはサーバー用のスレッドがあります。接続は Kryonet を使用して行われます。対戦相手が何かを作成すると、メッセージが受信されます linke:
public void received(Connection con, Object object) {
TroopMessage tm = (TroopMessage)object;
fortress.map.addSoldier(tm.kind, true);
System.out.println("recieved");
connection = con;
}
このコールバックが呼び出されると (そして正しく)、「現在のスレッドで OpenGL コンテキストが見つかりません」というメッセージが表示されます。MyClient スレッド内でオブジェクトの要塞を探していると思います。現在別のスレッドに存在するオブジェクトを参照する fortress.map.addSoldier を呼び出したいです。
public class Fortress extends Game implements ApplicationListener{
private OrthographicCamera camera;
private SpriteBatch batcher;
public static MyServer server;
public static MyClient client;
public static Map map;
[....]
別のスレッドからメソッドを呼び出すにはどうすればよいですか?
前もって感謝します