使用 Libgdx 和 Kryonet 将 main() 方法分离到 运行 DesktopLauncher.main() 和服务器
Separate main() methods to run DesktopLauncher.main() and Server using Libgdx and Kryonet
我希望我的 GameServer 运行 与游戏本身分开。因此,玩家(客户端)可以加入一个静态 GameServer,我可以一起处理它们并查看当前连接了多少客户端。
但问题是,我只能同时运行这些类(GameServer.main()和DesktopLauncher.main())中的一个。如果我没记错的话,GameServer 一定 运行ning 总是在后台,对吧?然而,如果不停止 GameServer,我无法 运行 游戏本身。 (一直在说正在执行任务 'DesktopLauncher.main()'...)我有一些图片可以了解正在发生的事情以及项目结构是什么样子的:
这是我的项目结构:
core
-java
--com.mygdx.game
---Multiplayer
----Packets
-----GameClient.java
-----GameServer.java
-----GameClientListener.java
-----GameServerListener.java
---screens
---utils
---Application.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();
}
}
感谢您的帮助。
有同样的问题。降级到 Android Studio 3.4 对我有用。
检查:https://www.reddit.com/r/libgdx/comments/fxrlsm/unable_to_run_two_or_more_application_in_parallel/
我希望我的 GameServer 运行 与游戏本身分开。因此,玩家(客户端)可以加入一个静态 GameServer,我可以一起处理它们并查看当前连接了多少客户端。
但问题是,我只能同时运行这些类(GameServer.main()和DesktopLauncher.main())中的一个。如果我没记错的话,GameServer 一定 运行ning 总是在后台,对吧?然而,如果不停止 GameServer,我无法 运行 游戏本身。 (一直在说正在执行任务 'DesktopLauncher.main()'...)我有一些图片可以了解正在发生的事情以及项目结构是什么样子的:
这是我的项目结构:
core -java --com.mygdx.game ---Multiplayer ----Packets -----GameClient.java -----GameServer.java -----GameClientListener.java -----GameServerListener.java ---screens ---utils ---Application.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();
}
}
感谢您的帮助。
有同样的问题。降级到 Android Studio 3.4 对我有用。
检查:https://www.reddit.com/r/libgdx/comments/fxrlsm/unable_to_run_two_or_more_application_in_parallel/