我正在开发一款小型游戏,我在阵列中遇到了几个障碍:
obstacles = [ { id: '#car' }, { id: '#house' }, { id: '#door' }, ];
在我的代码的第二部分中,我有:
JQuery的:
$('#alert').hide();
for (index in obstacles) {
object = $(obstacles[index]["id"]);
obj_left = object.position().left + parseInt(object.css("margin-left"));
obj_top = object.position().top + parseInt(object.css("margin-top"));
if ((((posX > (obj_left - me.width() / 2)) &&
(posX < (obj_left + object.width() + me.width() / 2)))) &&
(posY > (obj_top - me.height() / 2)) &&
(posY < (obj_top + object.height() + me.height() / 2))) {
// Cannot walk
return false;
}
$('#alert').show(); // display error message
}
// Can walk again
return true && $('#alert').hide(); // hide error again
}
HTML:
<div id="alert">//...</div>
<div id="character"></div>
<div class="door" id="door"></div>
<div class="house" id="house"></div>
<div class="car" id="car"></div>
我测试了它,效果很好。 但是我没有显示每个障碍的警报,而是想要检索某个障碍的值(即:如果玩家遇到汽车,输出&#34;你打了一辆车!&#34;或者如果玩家打到房子,输出&#34;你可能不会输入&#34;)。
希望我能够直截了当地提供相当数量的代码。
编辑:这是我所遵循的教程的链接:http://blog.oscarliang.net/pokemon-online-game-theme-tutorial/
谢谢!
答案 0 :(得分:1)
如果我理解正确,这将做你想做的事:
注意:当然,您需要包含jQuery才能正常工作
<script>
obstacles = [ { id: 'car' }, { id: 'house' }, { id: 'door' }, ]
$("div").on("click", function() {
var found = false;
var obj = $(this).prop("id");
for(i=0;i<obstacles.length;i++) {
if(obstacles[i].id == obj) {
found = true;
}
}
alert(found ? "You hit a " + obj + "!" : "You may not enter");
});
</script>
<div id="car">Car</div>
<div id="house">house</div>
<div id="door">door</div>
<div id="bank">bank</div>