canvas——Game原型邏輯流程

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);            }          },  
相關文章
相關標籤/搜索