开发塔防游戏 - 帮助一次定位一个单独的对象

时间:2016-09-15 22:22:08

标签: javascript arrays for-loop canvas this

Hello Stack Overflow程序员,

如果你曾经玩过塔防游戏,那么你应该去哪里。我一直在努力开发这种塔防游戏很长一段时间,我一直坚持在一个防御范围内同时瞄准一个单一物体的问题。我已经知道应该做些什么,但不能完全发挥作用。

this.defensesInRangeArcher = 0;
for (var i = 0; i < buildArcherX.length; i++) {
    for (var i = 0; i < buildArcherY.length; i++) {
        if (Math.sqrt(Math.pow(buildArcherX[i] - this.x, 2) + Math.pow(buildArcherY[i] - this.y, 2)) <= arch.radius + 7) {
            this.defensesInRangeArcher += 1;
            if (!v.singleAimArcher) {
                this.attackByArcher = true;
                v.singleAimArcher = true;
            }
        } else {
            this.attackByArcher = false;
            v.singleAimArcher = false;
        }
    }
}

正如您在上面的代码中看到的那样,这是游戏的定位部分。我正在开发的建筑之一是单发射手塔。 for语句用于访问所有archer塔坐标,if语句询问&#34; this&#34; (或者你可以说,敌人)在任何射手塔的范围内。 this.defensesInRangeArcher只是告诉我们有多少射手塔在范围内。

我将再次重复,我遇到的问题是没有v.singleAimArcher变量,射手塔会影响范围内的所有。我尝试通过添加v.singleAimArcher变量来解决此问题,因此只会影响一个变量。如果只有一个射手塔就位,但是当放下多个射手塔时,这种方法效果很好,但效果并不好。

有没有人有替代解决方案?

0 个答案:

没有答案