Javascript鼠标跟踪变量未从false切换为true

时间:2014-10-23 22:29:53

标签: javascript

我正在制作一个非常简单的游戏演示,作为我的高级项目的一部分,我正在尝试制作一个基本的匹配游戏,可以帮助教授一些基本的数学技能。我想让播放器能够翻转卡片以检查它们是否有正确的答案,但是,我用来跟踪鼠标是否被点击的变量似乎没有记录为真。 / p>

var isMouseDown = false;
c.onmousedown = 
function(evt) { isMouseDown = true; };
c.onmouseup = 
function(evt) { isMouseDown = false; };

// Keep track of where the mouse is
var mouse = {x: 0, y: 0};
c.onmousemove = 
function(evt) {
    mouse.x = evt.clientX;
    mouse.y = evt.clientY;
};

这是我使用变量的地方:

this.clicked = function() {
    c.strokeRect(500, 500, 20, 20);
    if (isMouseDown) {
        c.strokeRect(400, 400, 20, 20);
        var diffX = mouse.x - this.x;
        var diffY = mouse.y - this.y;
        if (0 <= diffX <= 40) {
            var xInRange = true;
        } else {
            xInRange = false;
        }
        if (0<= diffY <= 60) {
            var yInRange = true;
            c.strokeRect(this.x + 10, this.y + 25, 20, 20);
        } else {
            yInRange = false;
        }
        if (xInRange && yInRange) {
            this.flip();
        }
    }
};

我已经在画布中添加了一些指令来构建一个框来查看它是否正在编译代码的那一部分,看起来第一个是在我运行程序时绘制的,但是第二个( if语句中的那个不是,所以我想这将是我遇到问题的地方。

编辑:这是我调用函数的地方(这还没有完成,所以有几段代码闲置在未使用的地方):

    var cmTID;
    var timeStep = 50; //milliseconds
    var numCards = 10;
    function update() {
        var card = new Card(10, 10, 60, 40, 5);
        card.draw();
        card.clicked();//nothing after this compiles atm
        c.strokeRect(200, 200, 30, 30);
        clearTimeout(cmTID);
        cmTID = setTimeout(update, timeStep);
}

我没有大量的Javascript经验,尽管我已经在AP计算机科学方面做了相当多的工作,我在大二那年学习。如果你想知道,是的,我咬了一下 little 比我在这里咀嚼的更多:P

有人能指点我这里可能出错的地方吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试将@echo off set FILENAME=work.bat set FILENAME2=work2.bat echo @echo off ^>^>%FILENAME2% >>%FILENAME% echo echo Testing script ^>^>%FILENAME2% >>%FILENAME% echo echo Testing script again ^>^>%FILENAME2% >>%FILENAME% echo echo Testing script yet again ^>^>%FILENAME2% >>%FILENAME% echo echo Okay done testing ^>^>%FILENAME2% >>%FILENAME% 个事件添加到上下文mouse。而是将其添加到实际的c元素。