作为一个项目的一部分,我目前正在研究我们(一些编码爱好者朋友),我们正在尝试制作一个相对简单的游戏。游戏是由几个较小的游戏组成,我们将分别编程,我的工作是将它们组合成一个frankensteined超级游戏。 其中一个迷你游戏包括一个"运输模拟器"。非常类似于蛙人;只是一条车道转向迷你游戏。我编程的朋友有14名摇摆工作人员完成任务,如产生迎面而来的汽车,道路动画和你的汽车。我遇到的问题是,当我打电话给这个班级时,所有的线程都不会启动。有些人在完成其他人之前不会激活,有些人会在其他人之后。我将摇摆工作者转移到了执行服务中,但仍然得到了类似的结果。同时运行的线程数是否有上限?摇摆工作者对这份工作是错误的吗?这对我来说非常困惑,因为我无法在失败的线程中看到任何一致性。似乎没有理由为什么有时他们会推出,而其他时候也没有。有什么建议? 这是构造函数
travelGUI(Player playerIn) throws InterruptedException {
...
//player is a object that contains a variable for each GUI
//it is also a Parameter
player = playerIn;
player.mapGUI.setVisible(false);
player.mapGUI.dispose();
methodNewThread();//road display
carThread();//Used to update the car in the game
copShootThread();
copShootThread();//Used to set up the bullet shoot thread that shoots at the car
healthThread();
bulletThread();
copThread("1", 1, "1" + "p");
copThread("2", 2, "2" + "p");
copThread("3", 3, "3" + "p");
copThread("4", 4, "4" + "p");
//Creates the background animation for the road and the end conditions for the level
intComponents();
}
其中一个主题的示例是 public static void healthThread(){//此线程用于更新玩家健康状况
SwingWorker<Void, String> he;
he = new SwingWorker<Void, String>() {
@Override
protected Void doInBackground() throws Exception {
//code to be run in the new thread
...
}
return null;
}
};
// he.execute();
executorService.submit(he);
}