我的setInterval和if语句出现问题

时间:2015-08-24 10:33:40

标签: if-statement canvas setinterval

我在这里的第一篇文章,请耐心等待我:)

我正在重新发现我对#34; new"画布元素和javascript,我想我制作一个有趣的游戏,javascript艰难的新手。

游戏是一个狩猎游戏,我遇到的问题是,当动物进入听觉范围(代表猎人的像素和他周围的两个圆圈代表他的听力范围和视觉范围)时,他应该说"我听到了什么& #34;在视野范围内,他应该射击。

一切正常但是每次游戏循环重复并且动物在范围内时,他都会发送文本并进行拍摄。

我的想法是使用setInterval,但我不能让它按我想要的方式工作:( 这是我的代码:

var Interval = setInterval(function() {
    hunterTimer()
},1000);

if (hunter.x >= moose.x-hunter.d1/2 &&
    hunter.x <= moose.x+hunter.d2+hunter.d1/2 &&
    moose.y >= moose.y-hunter.d1/2 &&
    hunter.y <= moose.y+hunter.d2+hunter.d1/2) {

    function hunterTimer() {
        ctxtext.fillText("I hear something!",50,textbreak),
        textbreak += 10;
    }

    hunterTimer();
}

任何帮助都会很好,很抱歉这篇长篇文章:D

1 个答案:

答案 0 :(得分:1)

我认为问题在于代码结构。你可以试试这样的(未经测试的代码):

var hunterTimer = function () {
    if (hunter.x >= moose.x-hunter.d1/2 &&
        hunter.x <= moose.x+hunter.d2+hunter.d1/2 &&
        moose.y >= moose.y-hunter.d1/2 &&
        hunter.y <= moose.y+hunter.d2+hunter.d1/2) {

        ctxtext.fillText("I hear something!",50,textbreak),
        textbreak += 10;
    }
}

var interval = setInterval(hunterTimer, 1000);