1.獲取頁面canvas,並賦予一系列初始化值(變量、常量)[可選:便於多個地方使用方便,可以使用this指定];
如:
var Game = function(){
this.canvas = document.getElementById("canvas"),
this.content = this.canvas.getContext("2d");
};
2.爲使用方便,使用原型製做,方便調用;
如:
Game.prototype = {
}
3.於頁面上直接調用遊戲方法,並直接在原型中添加初始化函數;
頁面: var suchen = new Game();
suchen.init();
原型: init : function(now){
//此處調用一系列執行函數;如:繪製,動畫
},
4.初始化fps,便於遊戲的流暢性。在初始化位置初始化fps,並在原型中添加pfs更新獲取;
初始化: this.fps; //用於fps頻率
this.lastTime; //用於更新fps頻率
原型: fps : function(now){
this.fps = 1 / (now - this.laseTime) * 1000; //獲取canvas在設備中最好的頻率
this.lastFramTime = now; //用於下一次更新頻率
return this.fps;
}
5.於原型初始化函數中調用各類方法;
原型:
init : function(){
suchen.animate(); //並在原型中新增 animate函數; 注意調用名爲
},
animate : function(now){ if(!suchen.paused){ //這裏第六步說明
suchen.clearRectCanvas(); //首先清空畫布,並在下方新增清空函數,避免繪製重疊
suchen.fps(now); //獲取最佳頻率
//------------此處進行一系列的函數製做遊戲 }
requestAnimationFrame(suchen.animate); //執行循環本函數,用於時刻更新
},
clearRectCanvas : function(){
suchen.content.clearRect(0,0,this.canvas.width,this.canvas.height);
}, 6.於初始化函數中新增一個this.pausedTime用於遊戲的絕對暫停和再開始; 初始化: this.pausedTime; this.paused = false; //true 或者 false自定 並在animate的函數中定義是不是暫停開始 原型: togglePaused : function(){ var now = +new Date(); this.paused = !this.paused; if(!this.paused){ this.pausedTime = now; }else{ this.lastTime += (now - this.pausedTime); } },