Я работаю над игрой Canvas API, и я хочу создать несколько врагов, каждый раз, когда я создаю новый экземпляр врага, я хочу, чтобы он создавался в новой позиции (не случайным образом, а скорее в трех конкретных позициях.
Допустим, у меня есть эта функция:
var enemy = new Enemy(0, Math.random() * 184 + 50, Math.random() * 256);
Это создает нового врага с положением Y, равным 0, положением X, которое является случайным, и аргументом Speed, который также случайным.
Это отлично работает, но я хочу, чтобы враги создавались только в 3 определенных положениях, а скорость увеличивалась только на 10 каждый раз, когда создается новый экземпляр врага.
Дополнительная информация: новые враги вызываются, когда игрок достигает финальной позиции, например:
var increaseDifficulty = function(numEnemies) {
// remove all previous enemies on canvas
allEnemies.length = 0;
// load new set of enemies
for (var i = 0; i <= numEnemies; i++) {
var enemy = new Enemy(0, Math.random() * 184 + 50, Math.random() * 256);
allEnemies.push(enemy);
}
};
Я хочу создать нового врага с разными аргументами каждый раз. Только по положению и скорости.
Что-то вроде:
var enemy = new Enemy(0, 1, 1);
Во второй раз все будет иначе:
var enemy = new Enemy(0, 3, 2);
Конечно, значения не будут 1, 2 и 3, но идею вы поняли.
ОБНОВЛЕНИЕ:
Новый враг призывает к следующему:
var Enemy = function(x, y, speed) {
this.x = x;
this.y = y;
this.speed = speed;
this.sprite = 'images/enemy-bug.png';
};
Enemy.prototype.update = function(dt) {
this.x += this.speed * dt;
if (this.x >= 505) {
this.x = 0;
}
checkCollision(this);
};
Enemy.prototype.render = function() {
ctx.drawImage(Resources.get(this.sprite), this.x, this.y);
};
different expression
? - person MUT   schedule 07.12.2017for
? Сколько вы на самом деле хотите создать? 3? Или 1, но выбрать случайным образом из 3 позиций, которые вы произвольно генерируете где-то в начале (когда вы все инициализируете)? Как создать первого врага? - person Adelin   schedule 07.12.2017Y
всегда 0, но в ваших примерах вы передаете 0 вx
- person Dmitry   schedule 07.12.2017