diff --git a/game.js b/game.js index 65a5387..fe19933 100644 --- a/game.js +++ b/game.js @@ -5,7 +5,7 @@ // requestAnimationFrame polyfill if (!Date.now) - Date.now = function() { return new Date().getTime(); }; +Date.now = function() { return new Date().getTime(); }; (function() { 'use strict'; var vendors = ['webkit', 'moz']; @@ -15,414 +15,414 @@ if (!Date.now) window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame'] || window[vp+'CancelRequestAnimationFrame']); } if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) // iOS6 is buggy - || !window.requestAnimationFrame || !window.cancelAnimationFrame) { + || !window.requestAnimationFrame || !window.cancelAnimationFrame) { var lastTime = 0; window.requestAnimationFrame = function(callback) { var now = Date.now(); var nextTime = Math.max(lastTime + 16, now); return setTimeout(function() { callback(lastTime = nextTime); }, - nextTime - now); + nextTime - now); }; window.cancelAnimationFrame = clearTimeout; } }()); function Game(id,params){ - var _ = this; - params = params||{}; - var settings = { - width:960, //画布宽度 - height:640 //画布高度 - }; - var _extend = function(target,settings,params){ - for(var i in settings){ - target[i] = params[i]||settings[i]; - } - return target; - }; - _extend(this,settings,params); - var $canvas = document.getElementById(id); - $canvas.width = _.width; - $canvas.height = _.height; - var _context = $canvas.getContext('2d'); //画布上下文环境 - var _stages = []; //布景对象队列 - var _events = {}; //事件集合 - var _index=0, //当前布景索引 - _hander; //帧动画控制 - //活动对象构造 - var Item = function(params){ - this._params = params||{}; - this._settings = { - x:0, //位置坐标:横坐标 - y:0, //位置坐标:纵坐标 - width:20, //宽 - height:20, //高 - type:0, //对象类型,0表示普通对象(不与地图绑定),1表示玩家控制对象,2表示程序控制对象 - color:'#F00', //标识颜色 - status:1, //对象状态,0表示未激活/结束,1表示正常,2表示暂停,3表示临时,4表示异常 - orientation:0, //当前定位方向,0表示右,1表示下,2表示左,3表示上 - speed:0, //移动速度 - //地图相关 - location:null, //定位地图,Map对象 - coord:null, //如果对象与地图绑定,需设置地图坐标;若不绑定,则设置位置坐标 - path:[], //NPC自动行走的路径 - vector:null, //目标坐标 - //布局相关 - stage:null, //绑定对象与所属布景绑定 - index:0, //对象索引 - frames:1, //速度等级,内部计算器times多少帧变化一次 - times:0, //刷新画布计数(用于循环动画状态判断) - timeout:0, //倒计时(用于过程动画状态判断) - control:{}, //控制缓存,到达定位点时处理 - update:function(){}, //更新参数信息 - draw:function(){} //绘制 - }; - _extend(this,this._settings,this._params); - }; - Item.prototype.bind = function(eventType,callback){ - if(!_events[eventType]){ - _events[eventType] = {}; - $canvas.addEventListener(eventType,function(e){ - var position = _.getPosition(e); - _stages[_index].items.forEach(function(item){ - if(Math.abs(position.x-item.x)