1

我已按照本指南制作我的蛇游戏。

但现在我想在地图中添加不止一种食物。

makeFoodItem();好吧,我尝试使用而不是默认的 1 行来放置行。就像:

makeFoodItem();
makeFoodItem();
makeFoodItem();
makeFoodItem();
makeFoodItem();

其中还做了5种食物。但是蛇拿到的时候分数没有加,只是去掉了,拿的时候也没有加新的。

所以我开始查看 Function makeFoodItem(),它看起来像这样:

function makeFoodItem(){
  suggestedPoint = [Math.floor(Math.random()*(canvas.width/gridSize))*gridSize, Math.floor(Math.random()*(canvas.height/gridSize))*gridSize];
  if (snakeBody.some(hasPoint)) {
    makeFoodItem();
  } else {
    ctx.fillStyle = "rgb(10,100,0)";
    ctx.fillRect(suggestedPoint[0], suggestedPoint[1], gridSize, gridSize);
  };
}

但我无法真正弄清楚在那里做什么。

4

1 回答 1

0
function spawnMultipleFood () {
    for (let i = 0; i < spawnMoreFoodX.length; i++) {
        let spawnMultipleX = spawnMoreFoodX[i]
    for (let j = 0; j < spawnMoreFoodY.length; j++) {
        let spawnMultipleY = spawnMoreFoodY[i]

    innerBoard.fillStyle = "purple";
    innerBoard.fillRect(spawnMultipleX * grid, spawnMultipleY * grid, gridSize, gridSize)
        }
    } 
}

我的 spawnMoreFoodX 和 spawnMoreFoodY 的全局变量是一个数组,我循环遍历并将其设置为另一个变量,然后将该变量插入到fillRect().

于 2021-11-13T07:43:39.410 回答