diff --git a/game.js b/game.js index 675c816..364a59c 100644 --- a/game.js +++ b/game.js @@ -200,6 +200,7 @@ function Game(id,options){ var fn = function(){ _context.clearRect(0,0,_.width,_.height); //清除画布 f++; + stage.update(); if(stage.map){ stage.map.update(); stage.map.draw(_context); @@ -241,9 +242,10 @@ function Game(id,options){ return item; }; //获取对象列表 - Stage.prototype.getItemsByType = function(type){ + Stage.prototype.getItemsByType = function(){ + var types = Array.prototype.slice.call(arguments,0); var items = this.items.filter(function(item){ - if(item.type==type){ + if(types.indexOf(item.type)>-1){ return item; } }); diff --git a/index.js b/index.js index 41c87d7..f4c92d2 100644 --- a/index.js +++ b/index.js @@ -104,7 +104,21 @@ (function(){ var stage = game.createStage({ update:function(){ - + if(this.map){ + var stage = this; + var items = this.getItemsByType(1,2); + var hash = {}; //当前对象位置分布 + items.forEach(function(item){ + var key = 'x'+item.coord.x+'y'+item.coord.y; //坐标的标识 + if(hash[key]){ + if(hash[key]!=item.type){ //如果NPC与玩家相遇 + stage.status = 2; + } + }else{ + hash[key] = item.type; + } + }); + } } }); //绘制地图 @@ -358,5 +372,5 @@ }); })(); game.init(); - game.nextStage(); //测试游戏主布景 + game.nextStage(); //*测试*游戏主布景,完成后需关闭 })(); \ No newline at end of file