【发布时间】:2016-09-22 21:39:09
【问题描述】:
我正在制作一个简单的战舰游戏,我按下一个按钮,随机放置三艘船。第一个函数placeBoat() 调用selectPos() 函数(它选择一个坐标),然后placeBoat() 函数使用属性boatHitBox 验证那里是否有船。如果它通过了测试,那么 buildBoat() 和 hitBox() 就会运行,它们分别放置船瓦片和船碰撞箱。我遇到的问题是,这些船通常要么太短一格,要么根本没有放置。我认为这是 hitBox() 函数的问题,虽然我不确定......有人可以帮忙吗?
var xPos;
var xBoxPos;
var yPos;
var boatBoxPos;
var count;
var boatPos;
var hasBoat;
var boatHitBox;
var boatGrid = {
placeBoat : function() {
for (boatNum = 1; boatNum < 4; boatNum++) {
console.log("boat placed now");
this.selectPos();
if (document.getElementById(boatPos).boatHitBox == 1) {
console.log("FAILED!!!!!!");
boatNum = 1;
this.clearTable();
}
else {
this.buildBoat();
}
}
},
selectPos : function() {
xPos = Math.floor(Math.random() * 8 + 1);
yPos = Math.floor(Math.random() * 10 + 1);
boatPos = "cell_" + xPos + "_" + yPos;
},
hitBox : function() {
for (count = 1; count < 5; count++) {
boatBoxPos = "cell_" + xBoxPos + "_" + yPos;
xBoxPos = xBoxPos + 1;
document.getElementById(boatBoxPos).boatHitBox = 1;
document.getElementById(boatBoxPos).innerHTML = "X";
}
},
buildBoat : function() {
for (boatLen = 1; boatLen < 4; boatLen++) {
xBoxPos = xPos - 2;
this.hitBox();
boatPos = "cell_" + xPos + "_" + yPos;
xPos = xPos + 1;
document.getElementById(boatPos).hasBoat = 1;
document.getElementById(boatPos).style.backgroundColor = "brown";
console.log("placed one tile");
}
},
【问题讨论】:
-
placeBoat只检查一个位置是否被填满,而不是船的所有位置。
标签: javascript methods properties