diff --git a/src/assets.ts b/src/assets.ts index d591c6b..0a4f886 100644 --- a/src/assets.ts +++ b/src/assets.ts @@ -1,5 +1,6 @@ import botonJugarImg from "./assets/boton_jugar.png"; -import larretaImg from "./assets/Millonario Malo.png"; +import larretaImg from "./assets/Larreta.png"; +import millonarioMaloPng from "./assets/Millonario Malo.png"; import fondoImg from "./assets/CieloRioCalle.png"; import edificiosImg from "./assets/Edificios.png"; import jugadorxImg from "./assets/ProtagonistaCorriendo_1.png"; @@ -20,6 +21,7 @@ function loadImage(url: string): Promise { export const assetUrls = { botonJugar: botonJugarImg, larreta: larretaImg, + millonarioMalo: millonarioMaloPng, fondo: fondoImg, edificios: edificiosImg, jugadorx: jugadorxImg, diff --git a/src/assets/Larreta.png b/src/assets/Larreta.png new file mode 100644 index 0000000..470deb8 Binary files /dev/null and b/src/assets/Larreta.png differ diff --git a/src/jugando.ts b/src/jugando.ts index b74e2d2..8a06d4e 100644 --- a/src/jugando.ts +++ b/src/jugando.ts @@ -15,7 +15,7 @@ export type State = { pos: { x: number }; view: { x: number }; side: "left" | "right"; - enemies: { x: number }[]; + enemies: { x: number; sprite: Sprite }[]; seeds: { x: number; velocity: { x: number } }[]; trees: { x: number; sprite: Sprite }[]; time: number; @@ -111,7 +111,13 @@ export function update(juego: Juego, dt: number) { const x = Math.random() * MAP_SIZE + MAP_MIN; // Don't spawn enemies too close if (Math.abs(juego.state.pos.x - x) < 300) continue; - juego.state.enemies.push({ x }); + juego.state.enemies.push({ + x, + sprite: randomFromArray([ + juego.sprites.larreta, + juego.sprites.millonarioMalo, + ]), + }); } for (const enemy of juego.state.enemies) { @@ -148,14 +154,10 @@ function drawTrees(juego: Juego) { } } function drawEnemies(juego: Juego) { - const height = juego.sprites.larreta.getHeight(juego); const floorY = getFloorY(juego); for (const enemy of juego.state.enemies) { - juego.sprites.larreta.draw( - juego, - enemy.x + juego.state.view.x, - floorY - height - ); + const height = enemy.sprite.getHeight(juego); + enemy.sprite.draw(juego, enemy.x + juego.state.view.x, floorY - height); } } diff --git a/src/main.ts b/src/main.ts index 7fa4cde..492230e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -18,6 +18,7 @@ export type Juego = { | "jugadorx" | "baldosa" | "larreta" + | "millonarioMalo" | "semilla" | "arbol1" | "arbol2"]: Sprite; @@ -98,6 +99,12 @@ async function initJuego() { ), larreta: loadSprite( assets.larreta, + 83, + 131, + (juego) => juego.canvas.height / 4 + ), + millonarioMalo: loadSprite( + assets.millonarioMalo, 50, 71, (juego) => juego.canvas.height / 4