2011-10-20 66 views
1

我知道有幾個類似的問題,但不幸的是,他們還沒有完全解決我的問題......據我所知。jQuery Collision Plugin for game character/div

在過去的幾個晚上,每當我有空閒時間,我一直在創造一個小型的遊戲,你可以看到一個片段/示例here(WASD移動 - 注意:它不是交叉瀏覽器兼容)

我使用的是一個名爲jQuery Collision的插件,理論上它完全符合我的要求,但給出的例子是用鼠標拖動對象完成的,而且我遇到了一些麻煩將其添加到我的實驗中。

我試圖在玩家與障礙物發生碰撞時將此添加到我的'W'鍵中,應該移除障礙物。

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

目前的障礙正在被刪除,但出乎意料的有些時候,如果放置障礙物,然後按W(上)箱子被刪除,即使球員和障礙還沒有相撞下方的播放器。

我也試過,我在演示的見過其他的方式,我也沒能工作:

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

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

任何人都可以擺脫什麼,我做錯了一些輕?

注意

我知道有插件,有像gameQuery,所以請不要推薦我使用,而不是:)

回答

0

嘗試做處理拖動插件:

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

原來患有這樣一個事實,即當您拖動時,div的當前位置不會更新,直到您放開。它本意是一個靜態碰撞檢查器。如果您在實例仔細看:

http://eruciform.com/jquerycollision/

......你會發現,當你拖動時,「重疊」的背後是一個框架。爲了不對模塊的預期用途(即拖動)做出假設,我將其留作使用jQuery認爲div所處的任何座標。這就是爲什麼我創建了拖動添加插件。它還有很多其他的花裏胡哨的東西,比如在拖拽過程中的「避免碰撞」。