2012-03-15 49 views
0

我正在爲Java中的個人項目製作基於文本的RPG。在遊戲中,主角將擁有使用咒語或異能的能力。我想爲上述咒語或異能增添一份冷靜。我研究了javax.swing.Timer和java.util.Timer類,但沒有找到一種方法去使用這種冷靜。我沒有使用線程或守護進程(主要是因爲我不認爲我需要,我沒有經驗)。如何使用計時器來延遲與定時器類(java.util.timer)不相關的特定任務?

任何幫助或想法如何去這個將不勝感激,謝謝。

  • 校友

回答

2

只需在咒語施放時保存System.currentTimeMillis()並檢查英雄試圖再次施放時所用的時間。

0

當你使用你的法術,設置一些變量來說,法術現在不可用。然後啓動一個計時器,它將充當你的冷靜。當計時器滴答時,重置該變量以表明它已經冷卻並可以再次使用。

0

如果可能,您可以在應用程序中觸發咒語/異能並禁用該功能時保存當前遊戲時間。
然後再次如果你可以做到這一點,你可以通過計算當前時間和咒語/異能被觸發的時間之間的時差來檢查每個「幀更新」,如果已經過了冷卻時間,並在需要時重新啓用該能力時間已過。

0

如果這是角色扮演回合制戰鬥,然後做到這一點:

使冷卻時間變量,需要等待冷卻匝數。

現在爲當前​​的冷卻回合製造另一個變量,現在將其值設置爲與冷卻時間相同,如 curcooldown = waitforcooldown,類似的情況。

然後如果你檢查玩家想要使用這個咒語然後像這樣檢查它。

If player wants to use spell & curcooldown is 0 
    UseSpell 
Else if (player wants to use spell & curcooldown greater or equal to 0 
    saytoplayerthatspellisundercooldown 

,並且如果使用法術則curcooldown = waitforcooldown 將其設置爲冷卻值轉值。 和每次回合結束,然後由1降低curcooldownvalue這意味着你的冷卻時間剛剛失去1個回合等等...

希望這有助於