Я хочу, чтобы мой GameServer работал отдельно от самой игры. Итак, игроки (клиенты) могут объединяться в одну станцию c GameServer, и я могу обрабатывать их вместе и видеть, сколько клиентов подключено в настоящее время.
Но проблема в том, что я могу запустить только один из них классы (GameServer.main () и DesktopLauncher.main ()) одновременно. GameServer должен всегда работать в фоновом режиме, если я не ошибаюсь, верно? Тем не менее, я не могу запустить саму игру, не остановив GameServer. (Он застрял, говоря «Выполнение задачи DesktopLauncher.main ()» ...) У меня есть несколько изображений, чтобы понять, что происходит и как выглядит структура проекта:
Pi c 1, Pi c 2 , Pi c 3
Вот моя структура проекта:
core - java --com.mygdx.game --- Мультиплеер ---- Пакеты ----- GameClient. java ----- GameServer. java ----- GameClientListener. java ---- -GameServerListener. java --- экраны --- утилиты --- Приложение. java
GameServer.class
package com.mygdx.game.Multiplayer;
imports..
public class GameServer {
public int TCP_PORT,UDP_PORT;
public Server server;
public GameServerListener listener;
public static int totalClients = 0;
public GameServer() {
TCP_PORT = UDP_PORT = xxxx;
server = new Server(TCP_PORT,UDP_PORT);
listener = new GameServerListener(this);
startServer();
}
public void startServer() {
server.addListener(listener);
try {
server.bind(TCP_PORT,UDP_PORT);
//server.bind(TCP_PORT);
} catch (IOException e) {
e.printStackTrace();
}
registerPackets();
server.start();
}
private void registerPackets() {
server.getKryo().register(LoginRequest.class);
server.getKryo().register(LoginResponse.class);
server.getKryo().register(ChoiceRequest.class);
server.getKryo().register(ChoiceRespond.class);
}
public static void main(String[] args) {
new GameServer();
}
}
Спасибо за любую помощь.