Я делаю свою первую игру в холсте/JS, и у меня возникает проблема с конструкторами функций. Мы пытаемся сделать так, чтобы объект Enemy случайным образом делал один из двух спрайтов при создании. Вот фрагмент нашего кода:Javascript: случайный выбор спрайтов в конструкторе
function Enemy() {
// Boilerplate stuff omitted. Relevant bit:
if (randomFromTo(1,50)%2 === 0) { // Assume this function works correctly
this.sprite.src = "images/scientist_1.png";
} else {
this.sprite.src = "images/scientist_2.png";
}
}
var enemy1 = new Enemy();
var enemy2 = new Enemy(); // etc
кажется достаточно простым, но в конечном итоге с каждым объектом противник, имеющий тот же спрайт. Я понятия не имею, почему это произойдет - если я поставлю сообщение журнала консоли в соответствующих местах, он регистрирует правильные варианты, но каждый враг в любом случае попадает в один и тот же спрайт. Итак, каков наилучший способ сделать это, если это возможно? Благодаря!
Как вы инициализируете 'this.sprite'? Может быть, все враги имеют один и тот же объект Image? – kayahr
Как вы это называете? – Sarfraz
Что такое 'this.sprite'? Где это объявлено? – satoshi