用于游戏角色/ div的jQuery Collision插件

时间:2011-10-20 18:28:06

标签: jquery collision

我知道有几个类似的问题,但不幸的是,就我的问题而言,它们并不是我的问题的答案......

在过去的几个晚上,每当我有空闲时间,我一直在努力创造一种类型的游戏,你可以看到一个片段/示例here(WASD要移动 - 注意:它还不是跨浏览器兼容的)

我正在使用一个名为jQuery Collision的插件,它在理论上完全符合我的要求,但是给出的示例是用鼠标拖动对象完成的,我有一些麻烦添加它进入了我的实验。

我尝试将此添加到我的'W'键,试图说明当玩家与障碍物碰撞时,应该移除障碍物。

    if ($("#player").collision("#obstacle")) {
        $("#obstacle").remove();
    }

目前障碍物正在被移除但有时出乎意料地,如果你将玩家置于障碍物下方并按下W(向上),即使玩家和障碍物尚未相撞,该框也会被移除。

我也尝试了其他方式,我在演示中看到过,我也无法工作:

    var collided = $("#player").collision("#obstacle");

    if (collided.length > 0) {
        $("#obstacle").remove()
    }

有人能说清楚我做错了吗?

注意

我知道有像gameQuery那样的插件,所以请不要建议我只使用它:)

1 个答案:

答案 0 :(得分:0)

尝试用于处理拖动的插件:

http://sourceforge.net/projects/jquidragcollide/

原来的事实是,当你拖动时,div的当前位置在你放手之前还没有更新。它本来是一个静态碰撞检查器。如果你仔细看看这些例子:

http://eruciform.com/jquerycollision/

...你会看到,当你拖动时,“重叠”就是一帧。为了不假设模块的预期用途(即拖动),我将其保留为使用jQuery认为div所处的任何坐标。这就是我创建拖动添加插件的原因。它还有许多其他的花里胡哨,就像拖动过程中的“避碰”一样。