Отдельные методы main () для запуска DesktopLauncher.main () и Server с использованием Libgdx и Kryonet - PullRequest
0 голосов
/ 02 августа 2020

Я хочу, чтобы мой 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();
}

}

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 03 августа 2020

Была такая же проблема. У меня сработал переход на Android Studio 3.4.

Проверить: https://www.reddit.com/r/libgdx/comments/fxrlsm/unable_to_run_two_or_more_application_in_parallel/

...