2017-01-01 60 views
0

我的奥赛罗游戏使用处理工作3.0改变处理的背景和变量,我正在做PC VS玩家模式如何从另一个线程

所以我有一个任务发送到另一个线程(对于当PC播放),因此过程不工作 从主线程 这个任务使用的变量(什么都没有发生过,当PC播放)

Thread t = new Thread(new Runnable() { 
    public void run() { 
     try{ 
      Thread.sleep(1000); 
     } catch (Exception e){} 
     PcPlay(); 
    } 
}); 
t.start(); 
+0

请改善您的问题。你有什么错误吗? “PcPlay()”方法实际上做了什么?你如何测试它看看它实际上在做什么?你能提供更多关于你的程序结构的背景和更多背景吗?我们越能理解你的问题和代码,我们就能提供更好的帮助。 –

+0

此外我已经格式化您的代码的可读性,因为张贴您的代码格式是可怕的。将来我强烈建议你自己做。格式化是非常重要的,因为如果你的代码不是标准的可接受格式,它的可读性不好,如果它不可读,这是不可理解的。 –

+0

此代码与“处理”有什么关系?看起来像普通的java。 – weston

回答

1

这是穿线工作。

已经为您调用draw()每秒60次。用它来实现你的游戏逻辑。

一个简单的方法是简单地有一个boolean变量来跟踪它的转向:人类玩家还是电脑玩家。如果轮到电脑播放器,让电脑轮流,然后翻转变量。如果轮到人类玩家,等待人轮到他们,然后再次翻转变量。

如果你无法正常工作,请发布MCVE(注意:不是你的完整草图,但不是一个断开连接的片段),我们将从那里开始。祝你好运。

+0

我试过thread.sleep之间的2转但程序块,这就是为什么我使用另一个线程 –

+0

,我不使用绘制 –

+0

@DelassiOthmane如果你没有使用'draw()'函数,为什么使用Processing?再次,这不是线程的工作。你只需要一个线程来完成你的目标。 –