Как изменить маленькую игру? - PullRequest
0 голосов
/ 14 сентября 2018

Я видел HTML-игру «Ретро-змейка» из блога, я скопировал скрипт и попытался изменить его, но не смог.

Код указан ниже. Как я могу изменить диапазон, которого может достичь змея? Я пытался изменить каждое значение, которое я могу изменить, но безуспешно.

В настоящее время я могу изменять только скорость змеи.

Как мне изменить диапазон, которого может достичь змея?

<!doctype html>
<html>

<body>
  <canvas id="can" width="400" height="400" style="background: Black"> 
    </canvas>
  <script>
    var sn = [42, 41],
      dz = 43,
      fx = 1,
      n, ctx = document.getElementById("can").getContext("2d");

    function draw(t, c) {
      ctx.fillStyle = c;
      ctx.fillRect(t % 20 * 20 + 1, ~~(t / 20) * 20 + 1, 18, 18);
    }
    document.onkeydown = function(e) {
      fx = sn[1] - sn[0] == (n = [-1, -20, 1, 20][(e || event).keyCode - 37] || fx) ? fx : n
    };
    ! function() {
      sn.unshift(n = sn[0] + fx);
      console.log(n);
      if (sn.indexOf(n, 1) > 0 || n < 0 || n > 399 || fx == 1 && n % 20 == 0 || fx == -1 && n % 20 == 19)
        return alert("GAME OVER");
      draw(n, "Lime");
      if (n == dz) {
        while (sn.indexOf(dz = ~~(Math.random() * 400)) >= 0);
        draw(dz, "Yellow");
      } else
        draw(sn.pop(), "Black");
      setTimeout(arguments.callee, 100);
    }();
  </script>
</body>

</html>

1 Ответ

0 голосов
/ 14 сентября 2018

Измените ширину и высоту холста, затем измените значения обнаружения столкновений.

Вот как вы можете изменить его на 800 x 800.

<!doctype html>
<html>

<body>
  <canvas id="can" width="800" height="800" style="background: Black"> 
    </canvas>
  <script>
    var sn = [42, 41],
      dz = 43,
      fx = 1,
      n, ctx = document.getElementById("can").getContext("2d");

    function draw(t, c) {
      ctx.fillStyle = c;
      ctx.fillRect(t % 40 * 20 , ~~(t / 40) * 20 + 1, 18, 18);
    }
    document.onkeydown = function(e) {
      fx = sn[1] - sn[0] == (n = [-1, -40, 1, 40][(e || event).keyCode - 37] || fx) ? fx : n
    };
    ! function() {
      sn.unshift(n = sn[0] + fx);
      console.log(n);
      if (sn.indexOf(n, 1) > 0 || n < 0 || n > 1599 || fx == 1 && n % 40 == 0 || fx == -1 && n % 40 == 39)
        return alert("GAME OVER");
      draw(n, "Lime");
      if (n == dz) {
        while (sn.indexOf(dz = ~~(Math.random() * 800)) >= 0);
        draw(dz, "Yellow");
      } else
        draw(sn.pop(), "Black");
      setTimeout(arguments.callee, 100);
    }();
  </script>
</body>
  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...