为什么我的代码不能将所有内容绘制到画布上?

时间:2018-03-18 17:28:55

标签: javascript html5-canvas

我正在尝试用Javascript编写一个蛇游戏,但我无法弄清楚为什么没有绘制蛇和食物。正在绘制得分,但这是错误的颜色。我曾尝试使用开发人员工具对其进行调试,并且所有内容似乎都具有正确的值,但它并没有显示出来。

完整代码可以在https://codepen.io/JKrew/pen/KogGxz找到。

这些是我的绘图功能,第一个是我的Snake功能,第二个是我的舞台功能。我确保在循环中调用它们。

this.draw = function() {
        context.fillStyle = this.color;

        for (let i = this.tail.length - 1; i >= 0; i--) {
            context.fillRect = (this.tail[i].x * cellSize, this.tail[i].y * cellSize, cellSize - 1, cellSize - 1);
        }
    };

this.draw = function() {
            context.fillStyle = this.food.color;
            context.fillRect = (this.food.x * cellSize, this.food.y * cellSize, cellSize - 1, cellSize - 1);

            context.fillSyle = '#FFF';
            context.fillText('Score: ' + snake.tail.length, 5, canvas.height - 5);
        };

1 个答案:

答案 0 :(得分:1)

您正在分配fillRect功能,而不仅仅是调用它:

            context.fillRect = (this.tail[i].x * cellSize, this.tail[i].y * cellSize, cellSize - 1, cellSize - 1);

应该是

            context.fillRect(this.tail[i].x * cellSize, this.tail[i].y * cellSize, cellSize - 1, cellSize - 1);

和第二次通话中的类似。

编辑:这是语法上有效的原因JavaScript是很少使用的comma operator