我正在製作一個迷宮遊戲,並且我正在爲迷宮佈局使用一張桌子。角色完美地移動,但它穿過牆壁對於牆壁,我使用的東西類似<td style="border-right:10px solid #000000;">
。它的作品,但角色幾乎是一個鬼。有沒有辦法讓字符在達到border
時停下來?我的迷宮在http://thomaswd.com/maze。在迷宮牆上停止字符javascript
謝謝!
我正在製作一個迷宮遊戲,並且我正在爲迷宮佈局使用一張桌子。角色完美地移動,但它穿過牆壁對於牆壁,我使用的東西類似<td style="border-right:10px solid #000000;">
。它的作品,但角色幾乎是一個鬼。有沒有辦法讓字符在達到border
時停下來?我的迷宮在http://thomaswd.com/maze。在迷宮牆上停止字符javascript
謝謝!
由於您使用的是jQuery,並且單元格上的類顯示了牆,您可以使用jQuery的hasClass
方法檢查您嘗試移入的單元格是否有牆。
function up() {
//check if the cell has a border on the bottom
if ($("#td" + (algernon - 8)).hasClass('b')) return;
$("td").css("background","transparent");
algernon -= 8;
setTimeout("refresh()", 0);
}
function down() {
//check if the cell has a border on the top
if ($("#td" + (algernon + 8)).hasClass('t')) return;
$("td").css("background","transparent");
algernon += 8;
setTimeout("refresh()", 0);
}
function leftclick() {
//check if the cell has a border on the right
if ($("#td" + (algernon - 1)).hasClass('r')) return;
$("td").css("background","transparent");
algernon -= 1;
setTimeout("refresh()", 0);
}
function rightclick() {
//check if the cell has a border on the left
if ($("#td" + (algernon + 1)).hasClass('l')) return;
$("td").css("background","transparent");
algernon += 1;
setTimeout("refresh()", 0);
}
我希望這有助於
謝謝! – 2013-02-15 19:57:46
我試了一下,它適用於'up()'和'left click()',但不適用於其他版本 – 2013-02-15 20:03:15
有趣...我的課程是否正確?我現在在工作,所以我不能自己測試,但如果你可以等待兩個小時,我會在它上面.. – jonhopkins 2013-02-15 20:07:25
保存鼠標所在的單元格,然後當請求移動時,檢查當前單元格是否在用戶嘗試去的方向上具有邊界,或者未來單元格在相反方向上具有邊界,如果有請移除移動請求。例如,如果用戶點擊右側,請檢查當前單元格是否有右邊框,或鼠標移動的單元格是否有左邊框。
請張貼相關的代碼在這裏。 – bfavaretto 2013-02-15 19:36:09
你是什麼意思? – 2013-02-15 19:38:05
在jsfiddle中複製問題 – 2013-02-15 19:38:49