我正在开发一个简单的2D文本游戏。所以,我有2个 Player
类在 Arena
类中进行战斗。我想同时使用它们并修改它们(位置,hp等......)
例如:当程序运行时, Player1
移至x,y
位置, Player2
移至{{1} }位置,然后他们同时在 x,y
中有新的位置。
最好的方法是什么?
答案 0 :(得分:0)
为此你必须使用线程。 Here就是一个例子:
public static void main(String[] args) {
new Thread() {
public void run() {
method1();
}
}.start();
new Thread() {
public void run() {
method2();
}
}.start();
//etc
//or, as kingdamian42 pointed out, if you use java8, use this
new Thread(() -> method1()).start();
new Thread(() -> method2()).start();}
这里方法一和二将是你的球员移动。
答案 1 :(得分:0)
不要将游戏时间与CPU时间混为一谈。仅仅因为玩家在相同的游戏时间移动并不意味着您需要同时执行CPU线程。您只需要一个模拟同时移动的逻辑循环。
例如,循环所有玩家并检查他们的行为是否相互冲突。如果两个玩家想要移动到同一位置,则显示错误。否则,再次循环它们并将它们全部移动到新位置。然后重绘场景。即使您在第二个循环中一次更新一个玩家,屏幕也不会显示动作,直到整个场景重新绘制。