1 回答

TA貢獻2080條經(jīng)驗 獲得超4個贊
將以幀為單位的動畫改成以時間為單位的動畫
對于不需要經(jīng)常變動的圖片,如背景等,請使用離屏canvas來實現(xiàn)
對于一些細節(jié)的地方,如canvas.width 等,需要用width = canvas.width來保存值使用
使用函數(shù)節(jié)流
事件觸發(fā)動作不要以綁定的函數(shù)為主,需要將觸發(fā)的參數(shù)通過傳到程序內(nèi)部,通過游戲循環(huán)來實現(xiàn)。如:當點擊右箭頭的時候,你只需要告訴游戲主體,往右移動已經(jīng)被觸發(fā),至于怎么運動由程序自己決定。
優(yōu)化循環(huán),一般來說導致程序運行緩慢最主要的原因都是這個,內(nèi)部邏輯太多,一個單位循環(huán)內(nèi)根本來不及處理,對于某些數(shù)據(jù)計算性的東西,比如說生成隨機數(shù)等可以通過worker來實現(xiàn),對于一些不需要經(jīng)常使用的功能,請盡量避免調(diào)用,只有在某些情況觸發(fā)了以后,參數(shù)值變了,再進行調(diào)用。 比如說if(go) dosomething(); 只有當go為true時才進行操作,這樣可以省下大量時間。
當然具體的優(yōu)化細節(jié)需要根據(jù)你的代碼來決定,我只能講這么點通用的東西,其實大部分優(yōu)化的思路都一樣的
添加回答
舉報