如何处理与瓦片id javascript的冲突
我用JavaScript编写了一个带有html5画布的小游戏,我正处于冲突检测的阶段,感到相当困惑 我在平铺中构建我的关卡,然后将保存的JSON文件导入到游戏中 在“标高绘制”函数中,我检查是否存在任何图层特性,以及图层特性是否存在冲突。如果返回,则返回该层并继续循环。完成后,返回冲突的层将通过另一个循环,以便将平铺值放入数组中 所以在这个数组中,我有一系列的数组,这取决于层中有多少行磁贴,这些行保存了每一行的数据 我想做的是当玩家x/y在一个不等于0的平铺中时,然后碰撞 如果我所拥有的只是该平铺空间中的值,我将如何做到这一点 是一个到游戏的实时版本的链接,这样你就可以自己看到瓷砖是如何存储的,我已经在一些console.log中放了一些,所以你可能想使用firebug或类似的工具来查看。登录使用 用户名-来宾 密码-来宾 澄清我的问题是:如何在我的播放器x/y和平铺值之间创建冲突?? 非常感谢 更新 好的,我想我就快到了,我现在的问题是如何从数组中读取对象x和y,然后检查碰撞,当碰撞检测与屏幕右下角数组中的最后一个磁贴一起工作时,下面是我实现的代码,用于遍历数组:如何处理与瓦片id javascript的冲突,javascript,jquery,html,canvas,collision-detection,Javascript,Jquery,Html,Canvas,Collision Detection,我用JavaScript编写了一个带有html5画布的小游戏,我正处于冲突检测的阶段,感到相当困惑 我在平铺中构建我的关卡,然后将保存的JSON文件导入到游戏中 在“标高绘制”函数中,我检查是否存在任何图层特性,以及图层特性是否存在冲突。如果返回,则返回该层并继续循环。完成后,返回冲突的层将通过另一个循环,以便将平铺值放入数组中 所以在这个数组中,我有一系列的数组,这取决于层中有多少行磁贴,这些行保存了每一行的数据 我想做的是当玩家x/y在一个不等于0的平铺中时,然后碰撞 如果我所拥有的只是该平
this.check_coll = function(array,posX, posY){
var collided = false,
block_x,
block_y,
block_cx,
block_cy,
combined_hw = 32,
combined_hh = 32,
player_cx = posX+(32/2),
player_cy = posY+(32/2);
array.forEach(function(value,i){
//get obj x
block_x = value[1];
//get obj y
block_y = value[2];
block_cx = block_x+(32/2);
block_cy = block_y+(32/2);
collided = Math.abs(player_cx - block_cx)< combined_hw
&& Math.abs(player_cy - block_cy)< combined_hh;
});
return collided;
}
任何意见都是在forEach之外的,这意味着只有最后一个任务才重要。也许你可以使用数组。一些?