Agregar Larreta

This commit is contained in:
Nulo 2021-07-01 20:45:37 +00:00
parent 080513daf6
commit 973c8da577
4 changed files with 20 additions and 9 deletions

View file

@ -1,5 +1,6 @@
import botonJugarImg from "./assets/boton_jugar.png"; 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 fondoImg from "./assets/CieloRioCalle.png";
import edificiosImg from "./assets/Edificios.png"; import edificiosImg from "./assets/Edificios.png";
import jugadorxImg from "./assets/ProtagonistaCorriendo_1.png"; import jugadorxImg from "./assets/ProtagonistaCorriendo_1.png";
@ -20,6 +21,7 @@ function loadImage(url: string): Promise<HTMLImageElement> {
export const assetUrls = { export const assetUrls = {
botonJugar: botonJugarImg, botonJugar: botonJugarImg,
larreta: larretaImg, larreta: larretaImg,
millonarioMalo: millonarioMaloPng,
fondo: fondoImg, fondo: fondoImg,
edificios: edificiosImg, edificios: edificiosImg,
jugadorx: jugadorxImg, jugadorx: jugadorxImg,

BIN
src/assets/Larreta.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -15,7 +15,7 @@ export type State = {
pos: { x: number }; pos: { x: number };
view: { x: number }; view: { x: number };
side: "left" | "right"; side: "left" | "right";
enemies: { x: number }[]; enemies: { x: number; sprite: Sprite }[];
seeds: { x: number; velocity: { x: number } }[]; seeds: { x: number; velocity: { x: number } }[];
trees: { x: number; sprite: Sprite }[]; trees: { x: number; sprite: Sprite }[];
time: number; time: number;
@ -111,7 +111,13 @@ export function update(juego: Juego<State>, dt: number) {
const x = Math.random() * MAP_SIZE + MAP_MIN; const x = Math.random() * MAP_SIZE + MAP_MIN;
// Don't spawn enemies too close // Don't spawn enemies too close
if (Math.abs(juego.state.pos.x - x) < 300) continue; 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) { for (const enemy of juego.state.enemies) {
@ -148,14 +154,10 @@ function drawTrees(juego: Juego<State>) {
} }
} }
function drawEnemies(juego: Juego<State>) { function drawEnemies(juego: Juego<State>) {
const height = juego.sprites.larreta.getHeight(juego);
const floorY = getFloorY(juego); const floorY = getFloorY(juego);
for (const enemy of juego.state.enemies) { for (const enemy of juego.state.enemies) {
juego.sprites.larreta.draw( const height = enemy.sprite.getHeight(juego);
juego, enemy.sprite.draw(juego, enemy.x + juego.state.view.x, floorY - height);
enemy.x + juego.state.view.x,
floorY - height
);
} }
} }

View file

@ -18,6 +18,7 @@ export type Juego<T extends State> = {
| "jugadorx" | "jugadorx"
| "baldosa" | "baldosa"
| "larreta" | "larreta"
| "millonarioMalo"
| "semilla" | "semilla"
| "arbol1" | "arbol1"
| "arbol2"]: Sprite; | "arbol2"]: Sprite;
@ -98,6 +99,12 @@ async function initJuego() {
), ),
larreta: loadSprite( larreta: loadSprite(
assets.larreta, assets.larreta,
83,
131,
(juego) => juego.canvas.height / 4
),
millonarioMalo: loadSprite(
assets.millonarioMalo,
50, 50,
71, 71,
(juego) => juego.canvas.height / 4 (juego) => juego.canvas.height / 4