Uncaught TypeError: Невозможно установить свойство 'vX' из неопределенного

0

Привет, ребята, еще раз я столкнулся с недостатком в своем игровом коде для школы... Поэтому здесь я пытаюсь добавить в свою "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;
};

Если бы кто-нибудь мог помочь мне и лучше понять это, это было бы здорово! Спасибо!!!

  • 0
    где вы создали экземпляр класса Player ??
  • 2
    Если этот код взят из книги, выбросьте книгу в окно и найдите другой.
Показать ещё 4 комментария
Теги:

1 ответ

0

Когда вы говорите var player; , вы устанавливаете player на неопределенный. Вам нужно создать новый экземпляр Player(). Вы можете это сделать

var player=new Player(xCoord,yCoord);

Эта книга проста, если она думает, что инициирование чего-то с похожим именем, как конструктор, создаст новый Player.

Чтобы узнать больше об объектах, вы должны взглянуть на учебник MDN

  • 0
    Можете ли вы взглянуть на это на скрипке, полный код там. Я просто не знаю, как бы я настроил то, что ты только что сказал мне. jsfiddle.net/MK6d5

Ещё вопросы

Сообщество Overcoder
Наверх
Меню