我正在用enchant.js制作一个RPG游戏,然后我创建了这样一个地图:样本地图
玩家不能通过水,但当玩家乘船时,他们可以通过through.My的问题是,当玩家行走/划船时,我应该重写collistionData吗?如果地图很大,有什么简单的方法吗?谢谢帮助。
发布于 2016-07-31 13:40:23
不熟悉enchant.js,但通常是使用冲突掩码来处理。因此,根据您使用的物理引擎,应该有一种方法来设置物理体上的碰撞掩码值(使用整数)。例如,对于box2d,您有两个值:
类别是该对象的数字值或类型。所以如果你有一堆变量:
const PLAYER = 1;
const WATER = 2;
const BOAT = 4;您可以将类别位设置为其中之一。掩码位是它可以与之碰撞的掩码的值。
const PlayerEntity = {
category: PLAYER,
mask: PLAYER | WATER
};
const WaterEntity = {
category: WATER,
mask: PLAYER
};物理引擎内部对此所做的是一项&操作,以查看类别和掩码值是否等同于0以外的值。如果是的话,就会发生碰撞。
https://stackoverflow.com/questions/38683357
复制相似问题