Привет, ребята, еще раз я столкнулся с недостатком в своем игровом коде для школы... Поэтому здесь я пытаюсь добавить в свою "Player Rocket", так что это код, который только что добавила мне книга под всеми моими астероидами.
player.vX = 0;
player.vY = 0;
if (player.moveRight) {
player.vX = 3;
};
if (player.moveUp) {
player.vY = -3;
};
if (player.moveDown) {
player.vY = 3;
};
player.x += player.vX;
player.y += player.vY;
context.fillStyle = 'rgb(255, 0, 0)';
context.beginPath();
context.moveTo(player.x+player.halfWidth, player.y);
context.lineTo(player.x-player.halfWidth, player.y-player.halfHeight);
context.lineTo(player.x-player.halfWidth, player.y+player.healfHeight);
context.closePath();
context.fill();
Теперь ошибка, которую я все время получаю...
Uncaught TypeError: Невозможно установить свойство "vX" неопределенного
Я просмотрел книгу, чтобы узнать, должен ли я определить это где-то, но я ничего не пропустил. Теперь я до сих пор очень новичок в этом, но единственное место, где я вижу меня, с помощью player.vX
здесь.
var player;
var Player = function(x, y){
this.x = x;
this.y = y;
this.width = 24;
this.height = 24;
this.halfWidth = this.width/2;
this.halfHeight = this.height/2;
this.moveRight = false;
this.moveUp = false;
this.moveDown = false;
this.vX = 0;
this.vY = 0;
};
Если бы кто-нибудь мог помочь мне и лучше понять это, это было бы здорово! Спасибо!!!
Когда вы говорите var player;
, вы устанавливаете player
на неопределенный. Вам нужно создать новый экземпляр Player()
. Вы можете это сделать
var player=new Player(xCoord,yCoord);
Эта книга проста, если она думает, что инициирование чего-то с похожим именем, как конструктор, создаст новый Player.
Чтобы узнать больше об объектах, вы должны взглянуть на учебник MDN