如何在java中同时调用方法?

时间:2018-06-08 10:44:07

标签: java multithreading

我正在开发一个简单的2D文本游戏。所以,我有2个 Player 类在 Arena 类中进行战斗。我想同时使用它们并修改它们(位置,hp等......)

例如:当程序运行时, Player1 移至x,y位置, Player2 移至{{1} }位置,然后他们同时在 x,y 中有新的位置。

最好的方法是什么?

2 个答案:

答案 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线程。您只需要一个模拟同时移动的逻辑循环。

例如,循环所有玩家并检查他们的行为是否相互冲突。如果两个玩家想要移动到同一位置,则显示错误。否则,再次循环它们并将它们全部移动到新位置。然后重绘场景。即使您在第二个循环中一次更新一个玩家,屏幕也不会显示动作,直到整个场景重新绘制。