salva-la-costanera/src/assets.ts

35 lines
1.1 KiB
TypeScript
Raw Normal View History

import botonJugarImg from "./assets/boton_jugar.png"
import larretaImg from "./assets/larreta.png"
import veredaImg from "./assets/piso.png"
import fondoImg from "./assets/fondo.png"
import jugadorxImg from "./assets/eli.png"
import semillaImg from "./assets/semilla.png"
import arbolImg from "./assets/arbol.png"
function loadImage(url: string): Promise<HTMLImageElement> {
return new Promise((resolve, reject) => {
let img = new Image()
img.onload = () => resolve(img)
img.onerror = e => reject(e)
img.src = url
})
}
export const assetUrls = {
botonJugar: botonJugarImg,
larreta: larretaImg,
vereda: veredaImg,
fondo: fondoImg,
jugadorx: jugadorxImg,
semilla: semillaImg,
arbol: arbolImg,
}
export type Assets = { [key in keyof typeof assetUrls]: HTMLImageElement }
const assets = Object.fromEntries(Object.entries(assetUrls).map(([name, url]) => [name, loadImage(url)]))
export async function loadAssets() {
const imgs = await Promise.all(Object.values(assets))
return Object.fromEntries(imgs.map((img, i) => [Object.keys(assetUrls)[i], img])) as Assets
}