【问题标题】:Problems with my setInterval and if statement我的 setInterval 和 if 语句有问题
【发布时间】:2015-08-24 19:17:10
【问题描述】:

我在这里的第一篇文章,请多多包涵:)

我重新发现了我对“新”画布元素和 javascript 的编程兴趣,并且我坚持我制作一个有趣的游戏,对于 javascript 来说非常新。

这个游戏是一个狩猎游戏,我遇到的问题是当动物进入听觉范围时(一个像素代表猎人,他周围的两个圆圈代表他的听觉范围和视觉范围)他应该说“我听到了一些东西”并且在他应该射击的视野范围。

一切正常,但每次游戏循环重复并且动物在范围内时,他都会发送垃圾短信和射击。

我的强项是使用 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

【问题讨论】:

    标签: if-statement canvas setinterval


    【解决方案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);
    

    【讨论】:

    • 感谢您提供的 awnser :) 虽然代码本身似乎可以正常工作,但它会停止游戏循环并在第 0 行将其描述为“脚本错误”...
    猜你喜欢
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2017-02-11
    • 2014-01-23
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多