1

このガイドに従って、ヘビゲームを作成しました。

しかし今、私はマップに複数の食べ物を追加したいと考えています。

makeFoodItem();さて、デフォルトの1行だけでなく、行を入れてみました。以下のようなので:

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

これも5つの食品を作りました。しかし、ヘビがそれらを取得したときにスコアは追加されず、削除されただけで、取得されたときに新しいスコアが追加されませんでした.

makeFoodItem()そこで、次のようなFunction を見てみました。

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 に答える