我正在尝试用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);
};
答案 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。