2017-01-01 59 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?再次,這不是線程的工作。你只需要一個線程來完成你的目標。 –