Triborg-333
@Triborg-333

Как исправить ошибку of undefined 'x'?

Хочу написать игру, через prototype, а в консоле ошибка
5d652c88ed261056690613.png

Код:
;(function(){

let canvas, ctx, width, height;

let Game = function(){
    
    //Подключаюсь к canvas.
	canvas = document.getElementById('knight');

	ctx = canvas.getContext('2d');

	let gameSize = {

	};

	this.loadGame();

	this.knight = new knight();

}

const bg = new Image();

bg.src = "img/bg.png";

Game.prototype.loadGame = function(){
	this.knight();
	this.draw();

	requestAnimationFrame(()=>{
		this.loadGame();
	});
}

function knight(){
	this.size = {x : 150, y : 150};
	this.position = {x : 150, y : 150};
}


Game.prototype.knight = function(){

}

Game.prototype.draw = function(){
	ctx.fillRect(150, 150, this.size.x, this.size.x)
}

window.onload = function(){
	new Game("ctx");
}

})();
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
@afanasiyz
Javascript-разработчик
У вас тут что то страшноватое :(
Как минимум, настройте, пожалуйста, отступы.

1. Вы вызываете функцию loadGame, она берется из из Game.prototype.
2. loadGame вызывает функцию this.knight - она тоже выбирается из Game.prototype (пустая функция)
3. Вызывается функция draw, там используется this.size.x - а this.size - не существует, это поле не заполнено.

Вопрос был как исправить - понятия не имею, что вы хотите, возможно в объявление Game.prototype.knight надо перетащить реализацию knight ( обычной функции).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы