3
客戶端+服務器都是用Javascript編寫的。我沒有一個主遊戲循環,因爲戰鬥很少發生,遊戲中沒有其他東西需要循環。當兩個玩家發起戰鬥,他們進入了自動攻擊循環是這樣的:調整這個RPG戰鬥循環?
if (combat key is pressed) {
check a bunch of stuff;
setTimeout(combatLoop(); 5000);
}
combatLoop = function() {
attack(player1,player2);
var loop = setTimeout(combatLoop(); 5000);
if (skill variable == 1) { clearTimeout(loop); skill(); }
}
所以,combatLoop函數被調用了一遍又一遍,每5秒。攻擊函數處理兩個輸入玩家互相攻擊時發生的情況。如果玩家使用技能,則使用clearTimeout退出循環,並調用相關的skill()函數。技能功能可以或不可以再次調用combatloop。
問題1
我非常新的JavaScript,我想知道,如果你們看到做這種方式的任何重大缺陷?
問題2
我還沒有看到什麼,我試圖做任何類似的例子,所以我還挺技能鍵部分劈在一起。讓技能循環「聽」技能按鈕這樣按下(技能按鈕按=>設置技能變量= 1)是否「錯誤」,並使用clearTimeout清除主循環?所以,技能在下次攻擊中得到執行(不在兩次攻擊之間),這對我來說很好。不知道工業標準是什麼。 :P
我想你的鱈魚e和我幾乎一樣?儘管組織得多。我做了一些關於setInterval和setTimeOut的搜索,並得出結論,setTimeOut是優越的,但這是一個小細節。謝謝! – Legendre
已更新爲包含'setTimeout()'而不是'setInterval()'^ _^- 我正在重新分配combatTimer,但沒關係;) –
非常感謝您的幫助。^__ ^ – Legendre