【问题标题】:jQuery Collision Plugin for game character / div用于游戏角色/div 的 jQuery 碰撞插件
【发布时间】:2013-01-03 14:10:54
【问题描述】:

我知道有几个类似的问题,但不幸的是,它们并不能完全解决我的问题……据我所知。

在过去的几个晚上,只要我有空闲时间,我就一直在摆弄创建一个小游戏,你可以看到一个 sn-p/example here(WASD 移动 - 注意:它还不能跨浏览器兼容)

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

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

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

目前正在移除障碍物,但有时会出人意料地,如果您将玩家放在障碍物下方并按 W(向上),即使玩家和障碍物尚未碰撞,盒子也会被移除。

我还尝试了我在演示中看到的其他方法,但我也无法使用:

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

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

谁能解释我做错了什么?

注意

我知道有像 gameQuery 这样的插件,所以请不要推荐我只使用它 :)

【问题讨论】:

    标签: jquery collision


    【解决方案1】:

    尝试制作处理拖动的插件:

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

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

    http://eruciform.com/jquerycollision/

    ...您会看到,当您拖动时,“重叠”在后面一帧。为了不对模块的预期用途(即拖动)做出假设,我将其保留为使用 jQuery 认为 div 所在的任何坐标。这就是我创建拖动添加插件的原因。它还有很多其他的花里胡哨,比如拖动过程中的“防撞”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2018-05-26
      • 2017-12-28
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多