Я создаю веб-игру, используя JavaScript с phaser. Я привык к Java и с трудом разбираюсь в правильном способе создания моей простой кнопочной игры. Игра представляет собой простую карту каждого ландшафта Швеции. Содержимое игры должно быть изменено в зависимости от того, какой пейзаж я нажимаю. Элементы, подлежащие обновлению, могут быть названиями кнопок, текстовыми данными и т. Д.javascript: Несколько обращений спрайтов
Одна из проблем, с которыми я столкнулась при создании множества ландшафтных классов, состоит в том, что m последний созданный пейзаж перезаписывает остальные. Консоль должна записывать имя прессованного ландшафта, но при нажатии на каждый пейзаж генерируется имя моего последнего созданного ландшафтного объекта.
Оглядываясь на мое решение, не получив его так, как я этого хочу, мне интересно, неправильно ли я посмотрю на свою структуру игры.
Есть ли лучший способ сделать это?
Вот ссылка на то, что игра в настоящее время выглядит следующим образом: http://postimg.org/image/l5jthna4x/
<script type="text/javascript">
var game = new Phaser.Game(480, 700, Phaser.AUTO, '', { preload: preload, create: create, update: update });
function create() {
game.stage.backgroundColor = '#7dc3ff';
sweden(0, 0, 'sweden', 10000000);
var btnLand = new BtnLand();
btnLand.changeText("Sweden");
}
function update() {
}
function render() {
}
var BtnLand = function(){
this.btn = game.add.sprite(game.world.centerX, game.world.height, 'btn-main');
this.btn.scale.setTo(0.8, 1);
this.btn.anchor.set(0.5, 1)
this.btn.inputEnabled = true;
}
BtnLand.prototype.changeText = function (title) {
this.title = title;
var style = { font: "32px Arial", fill: "#000000", wordWrap: true, wordWrapWidth: this.width, align: "center" };
this.text = game.add.text(this.btn.x, this.btn.y, this.title, style);
this.text.anchor.set(0.5, 1.5);
}
var Landscape = function(x, y, name) {
this.landname = name;
this.area = game.add.sprite(x, y, this.landname);
this.area.anchor.set(0.5);
this.area.inputEnabled = true;
this.area.events.onInputDown.add(listener, this);
}
var sweden = function(x, y, name) {
this.smaland = Landscape(230 + x, 483 + y, 'smaland', 720358);
this.skane = Landscape(200 + x, 600 + y, 'skane', 1289000);
this.blekinge = Landscape(277 + x, 565 + y, 'blekinge', 152315);
this.halland = Landscape(127 + x, 505 + y, 'halland', 152315);
}
function listener() {
console.log("pressed " + landname);
btnLand.changeText(landname);
}
</script>
Я ценю все советы я могу получить!
Заранее спасибо.