我想知道如何在一个小程序中同时使用多个线程。我正在创建一个像 Space Invaders 这样的游戏,并且我编写了所有让敌人移动和射击的代码,但我无法添加玩家在使用键盘的同时移动敌人。所以我想我需要运行 2 个不同的线程。我会上传代码,但有很多不同的类和代码。
如果有人可以快速帮助我,我将不胜感激。
是的,它们是相互独立的,我得到了我的单线程,它在我重载的 run() 方法中移动敌人,我所有的动作都在 paint 方法中。
他们应该在其他地方吗?
我想知道如何在一个小程序中同时使用多个线程。我正在创建一个像 Space Invaders 这样的游戏,并且我编写了所有让敌人移动和射击的代码,但我无法添加玩家在使用键盘的同时移动敌人。所以我想我需要运行 2 个不同的线程。我会上传代码,但有很多不同的类和代码。
如果有人可以快速帮助我,我将不胜感激。
是的,它们是相互独立的,我得到了我的单线程,它在我重载的 run() 方法中移动敌人,我所有的动作都在 paint 方法中。
他们应该在其他地方吗?
您可以使用一个线程或两个线程来执行此操作。
无论哪种方式,您都必须使用 GUI 事件线程来完成所有屏幕更新。
网上有很多参考资料讨论如何做到这一点。如果你用谷歌搜索java space invaders
,你会得到 150 万次点击,通常这种搜索的第一页比你需要的要多。
I think the enemies are independent and have particular movements, if that's the case, you will need several threads enemy, and for each player, but taking into account the resources of the computer you should deal with a manager thread or task managers.
These are links that maybe help you.
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CyclicBarrier.html