我的腳本有問題。我所擁有的是使用2維數組製作的平鋪地圖,它使用不同的數字指定不同的瓦片類型,並在容器div元素中繪製。我也有一個可移動的角色div元素。我的問題是我無法弄清楚如何檢測瓷磚並利用所述檢測結果來確定角色是否可以移動到附近的瓷磚中。二維陣列瓦片圖碰撞檢測情況。
我有這個託管的關聯網站如下;
http://brandynssite.webs.com/map_tile.html
正如你可以與該例子中看到有繪製平鋪圖,即開始於0,0的字符元素的容器,並有用於檢查字符位置和瓦片類型兩個按鈕。我想要發生的事情是代碼檢測到按鍵事件發生后角色正在前往的區塊,並在可能的情況下移動它們。我需要什麼樣的功能,是他們的一套特定的算法,我需要的東西和我在該網站上所擁有的一樣簡單。
我已經提供了允許角色移動的功能之一,因爲它似乎是我可以想到的可能的碰撞檢測中最相關的功能。
function anim(e) {
if(e.keyCode==39){
character_left += 10;
x += 1;
playerPos=mapArray[y][x];
character.style.left = character_left + "px";
if(character_left >= 190){
character_left -= 10;
x -= 1;
playerPos=mapArray[y][x];
}
}
if(e.keyCode==37){
character_left -= 10;
x -= 1;
playerPos=mapArray[y][x];
character.style.left = character_left + "px";
if(character_left <= 0){
character_left += 10;
x += 1;
playerPos=mapArray[y][x];
}
}
if(e.keyCode==40){
character_top += 10;
y += 1;
playerPos=mapArray[y][x];
character.style.top = character_top + "px";
if(character_top >= 190){
character_top -= 10;
y -= 1;
playerPos=mapArray[y][x];
}
}
if(e.keyCode==38){
character_top -= 10;
y -= 1;
playerPos=mapArray[y][x];
character.style.top = character_top + "px";
if(character_top <= 0){
character_top += 10;
y += 1;
playerPos=mapArray[y][x];
}
}
}
我不知道我理解你的問題:你想檢查玩家是否可以移動/你想檢測collsions? – Piotrek
基本上我想檢測碰撞。 – user3079304
和mapArray中有什麼? – Piotrek