所以我得到了這個我編碼的新遊戲。長話短說,我的GUI中有一個textarea,它充當事件顯示器。當你與怪物戰鬥時,這個textarea用來顯示文字,如「你對骨骼造成3點傷害」或「骨架對你施放火球並擊中你5點傷害」。Javafx - 我如何推遲在我的textarea中顯示新行?
該代碼的作用方式使怪物在你身後發作。因此,只要你點擊「攻擊」按鈕,你就可以在文本區同時顯示你所做的事情和說出怪物的行。就好像這個怪物在你擊中它後立即以光速擊中你。
我想要做的就是延遲怪物線的顯示。所以當我點擊「攻擊」按鈕時,textarea會顯示我所做的事情,然後等待一秒鐘,然後顯示怪物的行。
我嘗試過使用Thread.sleep()方法,但它所做的只是暫停UI 1秒,然後兩行出現在textarea中。
private void attackBareFists() {
if (initPJ > enemyINIT) { // Player has more initiative ->
// Player attacks first
turnPlayerBareFists(); // This method will display the player's line
if (!endTurn()) { // endTurn() checks that the player or the monster
// are still alive before continuing the fight
delay();
turnMonster(); // This method will display the monster's line
endTurn();
}
} ... // The code continues, but it's the same as above except monster attacks first
}
/**
* Wait for some time
*/
private void delay(){
}
我應該把什麼延遲()?這是我試過Thread.sleep(1000)的地方。就像我說的那樣,這樣做會導致在delay()之後執行turnPlayerBareFists()和turnMonster()的代碼。任何幫助,將不勝感激。
謝謝!這工作完全按照我的意願!非常感謝你! – NZoth