User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'getElement')' in or related to this line: 'LK.ui.getElement("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'get')' in or related to this line: 'LK.ui.get("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'getButton')' in or related to this line: 'LK.ui.getButton("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'button')' in or related to this line: 'LK.ui.button("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'getButton')' in or related to this line: 'LK.ui.getButton("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'button')' in or related to this line: 'LK.ui.button("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'get')' in or related to this line: 'LK.ui.get("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'button')' in or related to this line: 'LK.ui.button("buy-basic").on("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'getElementById')' in or related to this line: 'document.getElementById("buy-basic").addEventListener("pointerdown", function () {' Line Number: 69
User prompt
Please fix the bug: 'LK.addEventListener is not a function' in or related to this line: 'LK.addEventListener("pointerdown", function (obj) {' Line Number: 61
User prompt
Estructura del Código 1. Variables Globales Declararemos todas las variables necesarias en el ámbito global para que sean accesibles en todo el juego. javascript Copy // Variables globales let money = 0; // Contador de soles/dinero let enemiesDefeated = 0; // Contador de enemigos derrotados let currentBossDefeats = 0; // Contador de veces que el jefe ha sido derrotado let gameOver = false; // Estado del juego let gameWin = false; // Estado de victoria // Arrays para almacenar objetos del juego let defenses = []; // Defensas colocadas let enemies = []; // Enemigos activos let suns = []; // Soles/dinero en pantalla // Líneas del juego (4 líneas verticales) const lanes = [ { x: 100, y: 200, width: 80, height: 400 }, // Línea 1 { x: 250, y: 200, width: 80, height: 400 }, // Línea 2 { x: 400, y: 200, width: 80, height: 400 }, // Línea 3 { x: 550, y: 200, width: 80, height: 400 } // Línea 4 ]; // Tipos de enemigos const enemyTypes = [ { type: "weak", health: 50, damage: 10, speed: 1, moneyDrop: 25 }, { type: "normal", health: 100, damage: 20, speed: 0.8, moneyDrop: 50 }, { type: "strong", health: 200, damage: 30, speed: 0.6, moneyDrop: 75 }, { type: "boss", health: 1000, damage: 50, speed: 0.4, moneyDrop: 200 } ]; // Tipos de defensas const defenseTypes = [ { type: "basic", cost: 100, damage: 20, range: 100 }, { type: "upgraded", cost: 200, damage: 40, range: 150 } ]; 2. Clases para Objetos del Juego Crearemos clases para los diferentes tipos de objetos del juego, como defensas, enemigos y soles. javascript Copy // Clase para las defensas class Defense { constructor(type, lane) { this.type = type; this.lane = lane; this.health = 100; this.damage = defenseTypes.find(d => d.type === type).damage; this.range = defenseTypes.find(d => d.type === type).range; this.sprite = LK.getAsset(`defense_${type}`, `Defensa ${type}`, 0.5, 0.5); this.sprite.x = lanes[lane].x; this.sprite.y = lanes[lane].y; } update() { // Verificar si hay enemigos en su rango y atacar enemies.forEach(enemy => { if (enemy.lane === this.lane && Math.abs(enemy.sprite.x - this.sprite.x) < this.range) { enemy.takeDamage(this.damage); } }); } } // Clase para los enemigos class Enemy { constructor(type, lane) { this.type = type; this.lane = lane; this.health = enemyTypes.find(e => e.type === type).health; this.damage = enemyTypes.find(e => e.type === type).damage; this.speed = enemyTypes.find(e => e.type === type).speed; this.moneyDrop = enemyTypes.find(e => e.type === type).moneyDrop; this.sprite = LK.getAsset(`enemy_${type}`, `Enemigo ${type}`, 0.5, 0.5); this.sprite.x = lanes[lane].x + lanes[lane].width; this.sprite.y = lanes[lane].y; } update() { // Mover hacia la izquierda this.sprite.x -= this.speed; // Verificar si llegó al final de la pantalla if (this.sprite.x < 0) { gameOver = true; } } takeDamage(damage) { this.health -= damage; if (this.health <= 0) { this.defeat(); } } defeat() { // Añadir dinero al contador money += this.moneyDrop; enemiesDefeated++; // Eliminar enemigo const index = enemies.indexOf(this); enemies.splice(index, 1); // Verificar si aparece el jefe if (enemiesDefeated % 30 === 0) { spawnEnemy("boss"); } } } // Clase para los soles/dinero class Sun { constructor(x, y) { this.sprite = LK.getAsset("sun", "Sol", 0.5, 0.5); this.sprite.x = x; this.sprite.y = y; } collect() { // Animación de movimiento hacia el contador de dinero // (Implementar animación con LK.assets) money += 50; const index = suns.indexOf(this); suns.splice(index, 1); } } 3. Funciones Principales del Juego Implementaremos las funciones principales para manejar la lógica del juego. javascript Copy // Función para generar soles function spawnSun() { const x = Math.random() * (window.innerWidth - 100) + 50; const y = Math.random() * (window.innerHeight - 100) + 50; const sun = new Sun(x, y); suns.push(sun); } // Función para generar enemigos function spawnEnemy(type) { const lane = Math.floor(Math.random() * 4); const enemy = new Enemy(type, lane); enemies.push(enemy); } // Función para comprar defensas function buyDefense(type) { const cost = defenseTypes.find(d => d.type === type).cost; if (money >= cost) { money -= cost; const lane = Math.floor(Math.random() * 4); const defense = new Defense(type, lane); defenses.push(defense); } } // Función de actualización del juego (60 FPS) function update() { if (gameOver || gameWin) return; // Actualizar defensas defenses.forEach(defense => defense.update()); // Actualizar enemigos enemies.forEach(enemy => enemy.update()); // Verificar si el jefe ha sido derrotado 5 veces if (currentBossDefeats >= 5) { gameWin = true; showWinAnimation(); } } // Función para mostrar animación de victoria function showWinAnimation() { // Implementar animación de explosión y sacudida } 4. Event Listeners Implementaremos los listeners para interactuar con los soles y los botones de compra. javascript Copy // Listener para recolectar soles LK.addEventListener("pointerdown", (obj) => { suns.forEach(sun => { if (obj.event.target === sun.sprite) { sun.collect(); } }); }); // Listener para comprar defensas document.getElementById("buy-basic").addEventListener("pointerdown", () => buyDefense("basic")); document.getElementById("buy-upgraded").addEventListener("pointerdown", () => buyDefense("upgraded")); 5. Inicialización del Juego Configuraremos el fondo y comenzaremos a generar soles y enemigos. javascript Copy // Inicialización del juego function initializeGame() { LK.setBackgroundColor(0x87CEEB); // Color de fondo celeste // Generar soles cada 5 segundos setInterval(spawnSun, 5000); // Generar enemigos cada 3 segundos setInterval(() => spawnEnemy("weak"), 3000); } initializeGame();
User prompt
Elimina todo el codigo
User prompt
1) Debe estar inspirado en plantas vs zombies, es decir, 4 lineas en vertical, donde podre colocar mis defensar para eviat que los zombis lleguen a mi casa 2) contador de soles/dinero, el dinero caerá del cielo pero a medida que pasa el juego serán mas escasos, a la hora de yo presionar un sol/dinero, este debe de hacer una animación trasladándose hacia donde esta el contador de dinero y. obviamente, aumentando, puedes darle a los soles un valor de 50$ 3) los enemigos derrotados también sueltan dinero, dependiendo del enemigo, más vida/daño/ velocidad, toma en cuenta solo cuatro tipos de enemigos para que no te compliques: débil, normal, fuerte, jefe (este último saliendo solo cuando son eliminados 30 monstruos, si el jefe es derrotado, el volverá a aparecer luego de derrotar la misma cantidad + 10%, al jefe le agregaras más vida), 4) algo super importante tambien, solo habra 4 lineas de forma vertical, es decir que, en esas 4 lineas podre comprar mis defensa, 5) SUPER MEGA IMPORTANTE, crear los botones para la compra de nuevas defensas o mejora de las mismas, cuando compres una, automáticamente se colocaran en las 4 lineas pero será solo una de ellas 6) Los monstruos solo podrán ir por la misma línea donde esta la defensa para evitar problemas de que no sean derrotados. 7) El juego solo terminara con un game over si un monstruo destruye las defensas y llega al final de la pantalla, solo se ganara el juego cuando el jefe sea destruido por quinta vez, en esta ultima oportunidad, debe de mostrar una pequeña animación de sacudida, mientras que sobre el hay unos assets de “explosión”, para luego decir que ganaste ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
1) Debe estar inspirado en plantas vs zombies, es decir, 4 lineas en vertical, donde podre colocar mis defensar para eviat que los zombis lleguen a mi casa 2) contador de soles/dinero, el dinero caerá del cielo pero a medida que pasa el juego serán mas escasos, a la hora de yo presionar un sol/dinero, este debe de hacer una animación trasladándose hacia donde esta el contador de dinero y. obviamente, aumentando, puedes darle a los soles un valor de 50$ 3) los enemigos derrotados también sueltan dinero, dependiendo del enemigo, más vida/daño/ velocidad, toma en cuenta solo cuatro tipos de enemigos para que no te compliques: débil, normal, fuerte, jefe (este último saliendo solo cuando son eliminados 30 monstruos, si el jefe es derrotado, el volverá a aparecer luego de derrotar la misma cantidad + 10%, al jefe le agregaras más vida), 4) algo super importante tambien, solo habra 4 lineas de forma vertical, es decir que, en esas 4 lineas podre comprar mis defensa, 5) SUPER MEGA IMPORTANTE, crear los botones para la compra de nuevas defensas o mejora de las mismas, cuando compres una, automáticamente se colocaran en las 4 lineas pero será solo una de ellas 6) Los monstruos solo podrán ir por la misma línea donde esta la defensa para evitar problemas de que no sean derrotados. 7) El juego solo terminara con un game over si un monstruo destruye las defensas y llega al final de la pantalla, solo se ganara el juego cuando el jefe sea destruido por quinta vez, en esta ultima oportunidad, debe de mostrar una pequeña animación de sacudida, mientras que sobre el hay unos assets de “explosión”, para luego decir que ganaste ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
ahora es azul.
User prompt
sigo viendo la pantalla en negro.
User prompt
Solo veo una pantalla en negro.
User prompt
1) Debe estar inspirado en plantas vs zombies, es decir, 4 lineas en vertical, donde podre colocar mis defensar para eviat que los zombis lleguen a mi casa 2) contador de soles/dinero, el dinero caerá del cielo pero a medida que pasa el juego serán mas escasos, a la hora de yo presionar un sol/dinero, este debe de hacer una animación trasladándose hacia donde esta el contador de dinero y. obviamente, aumentando, puedes darle a los soles un valor de 50$ 3) los enemigos derrotados también sueltan dinero, dependiendo del enemigo, más vida/daño/ velocidad, toma en cuenta solo cuatro tipos de enemigos para que no te compliques: débil, normal, fuerte, jefe (este último saliendo solo cuando son eliminados 30 monstruos, si el jefe es derrotado, el volverá a aparecer luego de derrotar la misma cantidad + 10%, al jefe le agregaras más vida), 4) algo super importante tambien, solo habra 4 lineas de forma vertical, es decir que, en esas 4 lineas podre comprar mis defensa, 5) SUPER MEGA IMPORTANTE, crear los botones para la compra de nuevas defensas o mejora de las mismas, cuando compres una, automáticamente se colocaran en las 4 lineas pero será solo una de ellas 6) Los monstruos solo podrán ir por la misma línea donde esta la defensa para evitar problemas de que no sean derrotados. 7) El juego solo terminara con un game over si un monstruo destruye las defensas y llega al final de la pantalla, solo se ganara el juego cuando el jefe sea destruido por quinta vez, en esta ultima oportunidad, debe de mostrar una pequeña animación de sacudida, mientras que sobre el hay unos assets de “explosión”, para luego decir que ganaste
User prompt
Elimina todo el codigo
User prompt
Muy bien, requiero lo siguiente, conoces el videojuego plantas vs zombies?, basicamente necesito recrear dicho videojuego pero en JS con los parametros que te envie, ademas, el juego debe ser tipo idle, que significa esto, que a la hora de hacer el codigo, toma en cuenta lo siguiente muy importante: 1) contador de soles/dinero, el dinero caera del cielo pero a medida que pasa el juego seran mas escazos, 2) los enemigos derrotados tambien sueltan dinero, dependiendo del enemigo, mas vida/daño/ velocidad, toma en cuenta solo cuatro tipos de enemigos para que no te compliques: debil, normal, fuerte, jefe (este ultimo saliendo solo cuando son eliminados 30 monstruos, si el jefe es derrotado, el volvera a aparecer luego de derrotar la misma cantidad + 10%, al jefe le agregaras mas vida), algo super importante tambien, solo habra 4 lineas de forma vertical, es decir que, en esas 4 lineas podre comprar mis defensas, OJO, crear los botones para la compra/ mejora de estas defensas, cuando compres una, automaticamente se colocaran en las 4 lineas pero sera solo una de ellas, no olvides que los monstruos tambien deben de ir por esas mismas lineas para evitar que las defensas no los ataquen, muchsimas gracias.
User prompt
Elimina todo el codigo.
User prompt
Muy bien, requiero lo siguiente, conoces el videojuego plantas vs zombies?, basicamente necesito recrear dicho videojuego pero en JS con los parametros que te envie, ademas, el juego debe ser tipo idle, que significa esto, que a la hora de hacer el codigo, toma en cuenta lo siguiente muy importante: 1) contador de soles/dinero, el dinero caera del cielo pero a medida que pasa el juego seran mas escazos, 2) los enemigos derrotados tambien sueltan dinero, dependiendo del enemigo, mas vida/daño/ velocidad, toma en cuenta solo cuatro tipos de enemigos para que no te compliques: debil, normal, fuerte, jefe (este ultimo saliendo solo cuando son eliminados 30 monstruos, si el jefe es derrotado, el volvera a aparecer luego de derrotar la misma cantidad + 10%, al jefe le agregaras mas vida), algo super importante tambien, solo habra 4 lineas de forma vertical, es decir que, en esas 4 lineas podre comprar mis defensas, OJO, crear los botones para la compra/ mejora de estas defensas, cuando compres una, automaticamente se colocaran en las 4 lineas pero sera solo una de ellas, no olvides que los monstruos tambien deben de ir por esas mismas lineas para evitar que las defensas no los ataquen, muchsimas gracias.
User prompt
Muy bien, requiero lo siguiente, conoces el videojuego plantas vs zombies?, basicamente necesito recrear dicho videojuego pero en JS con los parametros que te envie, ademas, el juego debe ser tipo idle, que significa esto, que a la hora de hacer el codigo, toma en cuenta lo siguiente muy importante: 1) contador de soles/dinero, el dinero caera del cielo pero a medida que pasa el juego seran mas escazos, 2) los enemigos derrotados tambien sueltan dinero, dependiendo del enemigo, mas vida/daño/ velocidad, toma en cuenta solo cuatro tipos de enemigos para que no te compliques: debil, normal, fuerte, jefe (este ultimo saliendo solo cuando son eliminados 30 monstruos, si el jefe es derrotado, el volvera a aparecer luego de derrotar la misma cantidad + 10%, al jefe le agregaras mas vida), algo super importante tambien, solo habra 4 lineas de forma vertical, es decir que, en esas 4 lineas podre comprar mis defensas, OJO, crear los botones para la compra/ mejora de estas defensas, cuando compres una, automaticamente se colocaran en las 4 lineas pero sera solo una de ellas, no olvides que los monstruos tambien deben de ir por esas mismas lineas para evitar que las defensas no los ataquen, muchsimas gracias.
User prompt
Please fix the bug: 'TypeError: moneyText.setText is not a function' in or related to this line: 'moneyText.setText("Dinero: $" + money);' Line Number: 126
User prompt
Analiza y repara del codigo lo que este mal+
/**** * Initialize Game ****/ // Removed incorrect initialization of moneyText var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Variables globales function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _classCallCheck(a, n) { if (!(a instanceof n)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) { return t; } var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) { return i; } throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var money = 50; var defenses = []; var bullets = []; var enemies = []; var enemiesDefeated = 0; // Clase básica para defensas var Defense = /*#__PURE__*/function () { function Defense(y) { _classCallCheck(this, Defense); this.object = LK.getAsset('defense', { anchorX: 0.5, anchorY: 0.5 }); this.object.x = 50; this.object.y = y; this.cooldown = 1000; this.lastShot = Date.now(); } return _createClass(Defense, [{ key: "update", value: function update() { if (Date.now() - this.lastShot > this.cooldown) { this.shoot(); this.lastShot = Date.now(); } } }, { key: "shoot", value: function shoot() { var bullet = LK.getAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); bullet.x = this.object.x + 30; bullet.y = this.object.y; bullets.push(bullet); } }]); }(); // Botón de compra var buyButton = LK.getAsset('buyBtn', { anchorX: 0.5, anchorY: 0.5 }); buyButton.x = 100; buyButton.y = 50; buyButton.on('pointerdown', function () { if (money >= 50) { var yPositions = [150, 300, 450, 600]; var y = yPositions[defenses.length % 4]; var defense = new Defense(y); defenses.push(defense); game.addChild(defense.object); money -= 50; } }); // Texto de dinero var moneyText = new Text2("Dinero: $" + money, { size: 50, fill: 0xFFFFFF }); moneyText.anchor.set(0, 0.5); game.addChild(moneyText); game.addChild(buyButton); moneyText.x = 10; moneyText.y = 20; // Bucle principal function update() { // Actualizar UI moneyText.setText("Dinero: $" + money); // Actualizar defensas defenses.forEach(function (defense) { return defense.update(); }); // Actualizar balas bullets.forEach(function (bullet) { bullet.x += 5; if (bullet.x > 2048) { bullet.destroy(); } // Check collision with enemies enemies.forEach(function (enemy, index) { if (bullet.intersects(enemy.object)) { enemy.health -= 10; bullet.destroy(); if (enemy.health <= 0) { money += enemy.type === 'jefe' ? 100 : 10; enemy.object.destroy(); enemies.splice(index, 1); } } }); }); // Limpiar balas fuera de pantalla bullets = bullets.filter(function (bullet) { return bullet.x <= 2048; }); // Spawn enemies if (LK.ticks % 120 === 0) { var yPositions = [150, 300, 450, 600]; var type = 'normal'; if (enemiesDefeated >= 30) { type = 'jefe'; enemiesDefeated = 0; } var enemy = new Enemy(type, yPositions[Math.floor(Math.random() * 4)]); enemies.push(enemy); game.addChild(enemy.object); } // Update enemies enemies.forEach(function (enemy) { enemy.update(); }); } game.update = update; // Enemy class with different types var Enemy = /*#__PURE__*/function () { function Enemy(type, y) { _classCallCheck(this, Enemy); this.type = type; this.object = LK.getAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); this.object.x = 2048; this.object.y = y; this.speed = this.getSpeed(); this.health = this.getHealth(); } _createClass(Enemy, [{ key: "getSpeed", value: function getSpeed() { switch (this.type) { case 'debil': return 2; case 'normal': return 3; case 'fuerte': return 4; case 'jefe': return 1; default: return 2; } } }, { key: "getHealth", value: function getHealth() { switch (this.type) { case 'debil': return 10; case 'normal': return 20; case 'fuerte': return 30; case 'jefe': return 100; default: return 10; } } }, { key: "update", value: function update() { this.object.x -= this.speed; if (this.object.x < 0) { this.object.destroy(); } } }]); return Enemy; }();
===================================================================
--- original.js
+++ change.js
@@ -54,8 +54,10 @@
}
var money = 50;
var defenses = [];
var bullets = [];
+var enemies = [];
+var enemiesDefeated = 0;
// Clase básica para defensas
var Defense = /*#__PURE__*/function () {
function Defense(y) {
_classCallCheck(this, Defense);
@@ -98,9 +100,11 @@
buyButton.on('pointerdown', function () {
if (money >= 50) {
var yPositions = [150, 300, 450, 600];
var y = yPositions[defenses.length % 4];
- defenses.push(new Defense(y));
+ var defense = new Defense(y);
+ defenses.push(defense);
+ game.addChild(defense.object);
money -= 50;
}
});
// Texto de dinero
@@ -109,8 +113,9 @@
fill: 0xFFFFFF
});
moneyText.anchor.set(0, 0.5);
game.addChild(moneyText);
+game.addChild(buyButton);
moneyText.x = 10;
moneyText.y = 20;
// Bucle principal
function update() {
@@ -122,14 +127,99 @@
});
// Actualizar balas
bullets.forEach(function (bullet) {
bullet.x += 5;
- if (bullet.x > 800) {
+ if (bullet.x > 2048) {
bullet.destroy();
}
+ // Check collision with enemies
+ enemies.forEach(function (enemy, index) {
+ if (bullet.intersects(enemy.object)) {
+ enemy.health -= 10;
+ bullet.destroy();
+ if (enemy.health <= 0) {
+ money += enemy.type === 'jefe' ? 100 : 10;
+ enemy.object.destroy();
+ enemies.splice(index, 1);
+ }
+ }
+ });
});
// Limpiar balas fuera de pantalla
bullets = bullets.filter(function (bullet) {
- return bullet.x <= 800;
+ return bullet.x <= 2048;
});
+ // Spawn enemies
+ if (LK.ticks % 120 === 0) {
+ var yPositions = [150, 300, 450, 600];
+ var type = 'normal';
+ if (enemiesDefeated >= 30) {
+ type = 'jefe';
+ enemiesDefeated = 0;
+ }
+ var enemy = new Enemy(type, yPositions[Math.floor(Math.random() * 4)]);
+ enemies.push(enemy);
+ game.addChild(enemy.object);
+ }
+ // Update enemies
+ enemies.forEach(function (enemy) {
+ enemy.update();
+ });
}
-game.update = update;
\ No newline at end of file
+game.update = update;
+// Enemy class with different types
+var Enemy = /*#__PURE__*/function () {
+ function Enemy(type, y) {
+ _classCallCheck(this, Enemy);
+ this.type = type;
+ this.object = LK.getAsset('enemy', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ this.object.x = 2048;
+ this.object.y = y;
+ this.speed = this.getSpeed();
+ this.health = this.getHealth();
+ }
+ _createClass(Enemy, [{
+ key: "getSpeed",
+ value: function getSpeed() {
+ switch (this.type) {
+ case 'debil':
+ return 2;
+ case 'normal':
+ return 3;
+ case 'fuerte':
+ return 4;
+ case 'jefe':
+ return 1;
+ default:
+ return 2;
+ }
+ }
+ }, {
+ key: "getHealth",
+ value: function getHealth() {
+ switch (this.type) {
+ case 'debil':
+ return 10;
+ case 'normal':
+ return 20;
+ case 'fuerte':
+ return 30;
+ case 'jefe':
+ return 100;
+ default:
+ return 10;
+ }
+ }
+ }, {
+ key: "update",
+ value: function update() {
+ this.object.x -= this.speed;
+ if (this.object.x < 0) {
+ this.object.destroy();
+ }
+ }
+ }]);
+ return Enemy;
+}();
\ No newline at end of file