Мой код Javascript для игры с летающими птицами не отображает персонажа так, как он должен - PullRequest
0 голосов
/ 11 июля 2020

Я новичок в Javascript и пытаюсь создать flappy bird в обычном Javascript. Я следил за учебным курсом, и когда я дошел до этого момента, мой код не работал и не отображал символ (желтый квадрат), как это, по-видимому, должно было выполняться в соответствии с руководством. Я надеялся, что кто-нибудь сможет помочь мне с моей проблемой, большое спасибо.

Это мой HTML код здесь:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Flappy Bird</title>
    <style>
      canvas {
        border: 3px solid #000000;
        display: block;
        margin: 0 auto;
        background-color: lightblue;
      }
    </style>
  </head>
  <body>
    <canvas id="canvas" width="320" height="480"></canvas>

    <script src="game.js"></script>
  </body>
</html>

Это мой Javascript код здесь:

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

class Player {
  constructor(x, y) {
    this.x = x;
    this.y = y;
    this.w = 40;
    this.h = 40;
    this.ySpeed = 3;
  }
  show() {
    ctx.fillStyle = "yellow";
    ctx.fillRect(this.x, this.y, this.w, this.h);
  }
  update() {
    this.y += this.ySpeed;
    this.ySpeed += gravity;
  }
}

var p;

var gravity = 0.1;

window.onload = function () {
  start();
  setInterval(update, 10);
};

function start() {
  p = new Player(400, 400);
}

function update() {
  canvas.width = canvas.width;
  //player
  p.show();
  p.update();
}

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Размер вашего холста всего 320 пикселей, но вы пытаетесь нарисовать квадрат в позиции 400 пикселей.

Попробуйте:

p = new Player(0, 400)

Работает

0 голосов
/ 11 июля 2020

Игрок отрисовывается за кадром: координата x для игрока (а также координата y) равна 400, а ширина холста только 320. Я рекомендую вам проверить строку p = new Player(400, 400), чтобы убедиться, что числа верны.

...