Re: [問題] 遊戲中 子彈發射的間隔

看板Flash作者 (心中在下雨)時間11年前 (2013/10/01 18:14), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串3/5 (看更多)
你的想法,用一個參數判斷能不能射是合理的 假設以下的流程 (寫的簡陋點,別介意) var canFire = true; onKeyDown = function(){ if(canFire){ fire(); canFire = false; setTimeout(function(){ canFire = true; }, delayTime); } } 應該是這樣就可以了 如果是自動間隔時間發射 var autoTimer; var autoFire = false; onKeyDown = function(){ autoFire = !autoFire; if(autoFire){ autoTimer = setInterval(function(){fire()}, delayTime); }else{ clearInterval(autoTimer); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 42.70.212.41 ※ 編輯: no1kk 來自: 42.70.212.41 (10/01 18:19) ※ 編輯: no1kk 來自: 42.70.212.41 (10/01 18:20)

10/01 23:03, , 1F
純分享,以前也很喜歡用Timer作事情
10/01 23:03, 1F

10/01 23:03, , 2F
不過後來發現很多情況比起讓Timer自己自顧自的跑
10/01 23:03, 2F

10/01 23:04, , 3F
還需要顧慮到很多"影格同步"的問題,再加上東西一多,
10/01 23:04, 3F

10/01 23:04, , 4F
就不太建議每個東西都掛Timer,所以後來就習慣改用
10/01 23:04, 4F

10/01 23:05, , 5F
EnterFrame去統一CountDown很多事情,除了不用多Run以
10/01 23:05, 5F

10/01 23:06, , 6F
外,時間點也很好掌控,更可以利用修改fps達到戲劇化
10/01 23:06, 6F

10/01 23:06, , 7F
效果
10/01 23:06, 7F

10/01 23:07, , 8F
除非是需要講求精準時間點如馬錶,就只能掛Timer去超
10/01 23:07, 8F

10/01 23:07, , 9F
脫fps跟執行所需的時間誤差
10/01 23:07, 9F

10/02 01:58, , 10F
已經很久沒有做比較大型的case了,大case的確統一控管會較佳
10/02 01:58, 10F
文章代碼(AID): #1IIg2JEM (Flash)
文章代碼(AID): #1IIg2JEM (Flash)