我正在爲Java中的個人項目製作基於文本的RPG。在遊戲中,主角將擁有使用咒語或異能的能力。我想爲上述咒語或異能增添一份冷靜。我研究了javax.swing.Timer和java.util.Timer類,但沒有找到一種方法去使用這種冷靜。我沒有使用線程或守護進程(主要是因爲我不認爲我需要,我沒有經驗)。如何使用計時器來延遲與定時器類(java.util.timer)不相關的特定任務?
任何幫助或想法如何去這個將不勝感激,謝謝。
- 校友
我正在爲Java中的個人項目製作基於文本的RPG。在遊戲中,主角將擁有使用咒語或異能的能力。我想爲上述咒語或異能增添一份冷靜。我研究了javax.swing.Timer和java.util.Timer類,但沒有找到一種方法去使用這種冷靜。我沒有使用線程或守護進程(主要是因爲我不認爲我需要,我沒有經驗)。如何使用計時器來延遲與定時器類(java.util.timer)不相關的特定任務?
任何幫助或想法如何去這個將不勝感激,謝謝。
只需在咒語施放時保存System.currentTimeMillis()並檢查英雄試圖再次施放時所用的時間。
當你使用你的法術,設置一些變量來說,法術現在不可用。然後啓動一個計時器,它將充當你的冷靜。當計時器滴答時,重置該變量以表明它已經冷卻並可以再次使用。
如果可能,您可以在應用程序中觸發咒語/異能並禁用該功能時保存當前遊戲時間。
然後再次如果你可以做到這一點,你可以通過計算當前時間和咒語/異能被觸發的時間之間的時差來檢查每個「幀更新」,如果已經過了冷卻時間,並在需要時重新啓用該能力時間已過。
如果這是角色扮演回合制戰鬥,然後做到這一點:
使冷卻時間變量,需要等待冷卻匝數。
現在爲當前的冷卻回合製造另一個變量,現在將其值設置爲與冷卻時間相同,如 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個回合等等...
希望這有助於