HTML5游戏开发进阶指南读书笔记

创建游戏图层#gamecanvas(游戏图层)、#scorescreen(得分显示图层)、#gamestartscreen(游戏开始图层)、#levelselectscreen(关卡选择图层)、#loadingscreen(资源加载图层)、#endingscreen(游戏结束图层)所有图层共用.gamelayer,所有图层放于#gamecontainer中。

解决动画函数requestanimationframe兼容性问题:

1 (function(){ 2 var vendors = ['o','webkit','moz','ms']; 3 var lastTime = 0; 4 for(var i=0; i<vendors.length&&!window.requestAnimationFrame; i++){
   //循环检测当前浏览器支持的方法名 5 window.requestAnimationFrame = window[vendors[i]+'requestAnimationFrame'];
//将不同浏览器动画函数名统一 6 window.cancelAnimationFrame = window[vendors[i]+'CancelAnimationFrame']|| 7 window[vendors[i]+'CancelRequestAnimationFrame']; 8 } 9 if(!window.requestAnimationFrame){
    //检测浏览器是否支持动画函数 10 window.requestAnimationFrame =function (callback,element) { 11 var currTime = new Date().getTime(); 12 var timeToCall = Math.max(0,16-(currTime-lastTime));
         //理想刷新率为60hz(每1/60秒重绘一次),不断尝试修正刷新率。 13 var id = window.setTimeout(callback(),timeToCall);
         //timeToCall为0时各浏览器将采用最小调用单位时间。 14 lastTime =currTime+timeToCall;
         //执行后的时间。 15 return id; 16 } 17 } 18 if (!window.cancelAnimationFrame){ 19 window.cancelAnimationFrame = function(id){ 20 clearTimeout(id); 21 } 22 } 23 24 }());

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyygg.html