From d1437651c9e00ae843b7b281e992b75e34aaaf83 Mon Sep 17 00:00:00 2001 From: mumuy Date: Tue, 10 May 2016 00:40:06 +0800 Subject: [PATCH] =?UTF-8?q?updated=20=E5=9C=B0=E5=9B=BE=E9=9D=99=E6=80=81?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E5=8F=8D=E5=A4=8D=E8=BF=9B=E8=A1=8C=E7=BB=98?= =?UTF-8?q?=E5=88=B6=E8=AE=A1=E7=AE=97=EF=BC=8C=E8=80=8C=E6=98=AF=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game.js | 15 ++++++++++++++- index.js | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/game.js b/game.js index 4a2747a..65a5387 100644 --- a/game.js +++ b/game.js @@ -110,6 +110,7 @@ function Game(id,params){ y_length:0, //二维数组y轴长度 frames:1, //速度等级,内部计算器times多少帧变化一次 times:0, //刷新画布计数(用于循环动画状态判断) + cache:false, //是否静态(如静态则设置缓存) update:function(){}, //更新地图数据 draw:function(){}, //绘制地图 }; @@ -311,6 +312,7 @@ function Game(id,params){ map.stage = this; map.y_length = map.data.length; map.x_length = map.data[0].length; + map.imageData = null; this.maps.push(map); return map; }; @@ -345,7 +347,18 @@ function Game(id,params){ map.times = f/map.frames; //计数器 } map.update(); - map.draw(_context); + if(map.cache){ + if(!map.imageData){ + _context.save(); + map.draw(_context); + map.imageData = _context.getImageData(0,0,_.width,_.height); + _context.restore(); + }else{ + _context.putImageData(map.imageData,0,0); + } + }else{ + map.draw(_context); + } }); } if(stage.items.length){ diff --git a/index.js b/index.js index 1eee44f..206f90c 100644 --- a/index.js +++ b/index.js @@ -143,6 +143,7 @@ x:60, y:10, data:_DATA, + cache:true, draw:function(context){ for(var j=0; j