我正在使用Canvas在JavaScript中使用游戏。所讨论的精灵水平或垂直移动(但不是两个)。游戏区域被划分为16个x16像素单元(与精灵大小相同)以进行碰撞。我从左上角(而不是中心)绘制精灵。我已经研究出如何检测精灵是否跨越了一个新的单元格。精灵碰撞的单元格中心
var modX = sprite.x % 16;
var modY = sprite.y % 16;
if (modX == 0 && modY == 0)
{
// Sprite has entered new cell. Do appropriate functions
}
我现在需要制定出来的时候,精灵是在其中让我有点头疼,因为它是不一样的上面,加入半个单元宽度的单元格中间....我希望有人能够用一些伪代码来帮忙。 并记住:我是一个试图更好地使用javascript的艺术家 - 所以对我来说很容易,好吧。
谢谢伙计们。我终于弄清楚自己会错在哪里。这不是我的数学!当精灵在左上方时,他实际上是在24,16而不是以前认为的16,16。所以你可以想象为什么事情不起作用。 –
好的,你发现很好。我想知道你是否有抵消问题,这就是为什么我在我的答复中添加抵消部分。哟! – GameAlchemist