Я пытаюсь отобразить фигуры, используя холст, и они не отображаются - PullRequest
2 голосов
/ 15 марта 2020

Я работаю над простой игрой (следуя учебному пособию по Zenva Academy) и, хотя я следовал инструкциям T, я не могу заставить свои формы холста отображаться в браузере. Вот код, который у меня есть:

var canvas = document.getElementByID('myCanvas');
var ctx = canvas.getContext('2d');

let screenWidth = 1000;
let screenHeight = 500;

class GameCharacter {
  constructor(x, y, width, height, color) {
    this.x = x;
    this.y = y;
    this.width = width;
    this.height = height;
    this.color = color;
  }
}

var blueSquare = new GameCharacter(
  50, 50, 50, 50, "rgb(0, 0, 255)"
);
var rectangle = new GameCharacter(
  75, 75, 100, 50, "rgb(0, 255, 0)"
);
var redSquare = new GameCharacter(
  100, 50, 50, 50, "rgb(255, 0, 0)"
);

var draw = function() {
  ctx.clearRect(0, 0, screenWidth, screenHeight);

  ctx.fillStyle = "rgb(0, 0, 255)";
  ctx.fillRect(blueSquare.x, blueSquare.y, blueSquare.width, blueSquare.height);

  ctx.fillStyle = rectangle.color;
  ctx.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);

  ctx.fillStyle = redSquare.color;
  ctx.fillRect(redSquare.x, redSquare.y, redSquare.width, redSquare.height);

}

var step = function() {
  draw();

  window.requestAnimationFrame(step);
}
canvas {
  border: 4px solid green;
  background-color: yellow;
}
<canvas id='myCanvas' width='1000' height='500'></canvas>

Я все еще новичок в этом, и это первый вопрос, который я когда-либо задавал на форуме. Дайте мне знать, если я делаю что-то не так. ЛОЛ!

Я использую:

ОС: Windows 10 Pro 64-bit

Браузер: Пробовал оба Chrome и Microsoft Edge

Редактор кода: Sublime Text 3

1 Ответ

0 голосов
/ 15 марта 2020

Простая опечатка - вы написали getElementByID, а у вас должно быть getElementById. (Это сразу появляется в консоли инструментов разработчика вашего браузера.)

Затем вам нужно один раз позвонить step(), чтобы начать.

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

let screenWidth = 1000;
let screenHeight = 500;

class GameCharacter {
  constructor(x, y, width, height, color) {
    this.x = x;
    this.y = y;
    this.width = width;
    this.height = height;
    this.color = color;
  }
}

var blueSquare = new GameCharacter(
  50, 50, 50, 50, "rgb(0, 0, 255)"
);
var rectangle = new GameCharacter(
  75, 75, 100, 50, "rgb(0, 255, 0)"
);
var redSquare = new GameCharacter(
  100, 50, 50, 50, "rgb(255, 0, 0)"
);

var draw = function() {
  ctx.clearRect(0, 0, screenWidth, screenHeight);

  ctx.fillStyle = "rgb(0, 0, 255)";
  ctx.fillRect(blueSquare.x, blueSquare.y, blueSquare.width, blueSquare.height);

  ctx.fillStyle = rectangle.color;
  ctx.fillRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);

  ctx.fillStyle = redSquare.color;
  ctx.fillRect(redSquare.x, redSquare.y, redSquare.width, redSquare.height);

}

var step = function() {
  draw();

  window.requestAnimationFrame(step);
}

step();
canvas {
  border: 4px solid green;
  background-color: yellow;
}
<canvas id='myCanvas' width='1000' height='500'></canvas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...