Tron游戏关键事件问题

时间:2013-05-19 20:23:04

标签: javascript jquery

我想做一个'Tron-game like'小游戏,继承人代码,我已经做过:http://jsfiddle.net/Jim_Y/KQW5w/2/ 代码段:

$(document).keydown(function (e) {
        if (e.keyCode == 37) {
            // leftArrowPressed
            palette.leftArrowPressed();
        } else if (e.keyCode == 38) {
            //  topArrowPressed
            palette.topArrowPressed();
        } else if (e.keyCode == 39) {
            // rightArrowPressed
            palette.rightArrowPressed();
        } else if (e.keyCode == 40) {
            // bottomArrowPressed
            palette.bottomArrowPressed();
        }

        return false;
    });

Palette.prototype.leftArrowPressed = function () {
    this.X = this.X - this.game.speed;
    this.context.lineTo(this.X, this.Y);
    this.context.stroke();
}

问题是,当我按下其中一个箭头键并画一条线,然后按另一个箭头键时,图纸上有一点间断,所以画线不连续:/ 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我在你提供的演示中没有看到任何中断。

无论如何,第一次按箭头时,没有画线。

我通过在palette.context.beginPath()之前设置palette.context.moveTo()指令更新了您的代码,请参阅jsfiddle了解结果。

palette.context.beginPath();
palette.context.moveTo(palette.X, palette.Y);