我知道有一些类似的问题,但不幸的是,他们并没有完全解决我的问题.据我所知。
在过去的几个晚上,每当我有一些空闲时间,我一直在摆弄创造一个小类型的游戏,你可以看到一个片段/例子这里 (WASD移动-注意:它还不兼容跨浏览器)
我正在使用一个名为jQuery碰撞的插件,理论上它完全可以实现我希望它做的事情,但是给出的例子是用鼠标拖动对象完成的,我在实验中添加它遇到了一些困难。
我试着把这个添加到我的“W”键中,试图说当玩家与障碍物相撞时,障碍物应该被移除。
if ($("#player").collision("#obstacle")) {
$("#obstacle").remove();
}目前障碍正在被移除,但有些时候出乎意料,如果你把玩家放在障碍物下面并按下W(向上),方块就会被移除,即使玩家和障碍物还没有碰撞。
我还尝试了在演示中看到的其他方法,这些方法我也无法工作:
var collided = $("#player").collision("#obstacle");
if (collided.length > 0) {
$("#obstacle").remove()
}有人能说明我做错了什么吗?
注意事项
我知道有像gameQuery这样的插件,所以请不要建议我只使用它:)
发布于 2013-01-03 06:10:54
尝试使用插件来处理拖动:
http://sourceforge.net/projects/jquidragcollide/
原来的缺点是,当你拖曳时,div的当前位置还没有更新,直到您松手。它应该是一个静态的碰撞检查器。如果你仔细看下面的例子:
http://eruciform.com/jquerycollision/
.你会发现,当你拖动时,“重叠”就在后面一帧.为了不假设模块的预期用途(即拖动),我将其保留为使用jQuery认为div所在的任何坐标。这就是为什么我创建了拖放插件。它还有很多其他的铃铛和口哨,比如拖拽时的“避碰”。
https://stackoverflow.com/questions/7840434
复制相似问题