slop game oder so
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* Liste aller Grafikdateien und ihr Laden mit Rückfallebene.
|
||||
*
|
||||
* Jede Datei ist optional: Schlägt das Laden fehl (Datei fehlt, Netzwerkfehler),
|
||||
* erzeugt `Placeholders.js` unter demselben Schlüssel eine Ersatzgrafik. Quellen und
|
||||
* Lizenzen aller Dateien stehen in docs/ASSETS.md.
|
||||
* @module systems/Assets
|
||||
*/
|
||||
|
||||
/** Eigene Vektorgrafiken (SVG, CC0). Größe = Rastergröße im Spiel in Pixeln. */
|
||||
export const SPRITES = Object.freeze([
|
||||
{ key: 'player', file: 'sprites/president.svg', size: 64 },
|
||||
{ key: 'enemy-krabbler', file: 'sprites/krabbler.svg', size: 36 },
|
||||
{ key: 'enemy-sprungkralle', file: 'sprites/sprungkralle.svg', size: 48 },
|
||||
{ key: 'enemy-brutmutter', file: 'sprites/brutmutter.svg', size: 84 },
|
||||
{ key: 'enemy-nieter', file: 'sprites/nieter.svg', size: 36 },
|
||||
{ key: 'enemy-blechsoldat', file: 'sprites/blechsoldat.svg', size: 48 },
|
||||
{ key: 'enemy-walzmeister', file: 'sprites/walzmeister.svg', size: 88 },
|
||||
{ key: 'turret', file: 'sprites/turret.svg', size: 52 },
|
||||
{ key: 'supply-pod', file: 'sprites/supply-pod.svg', size: 48 },
|
||||
{ key: 'emblem', file: 'sprites/emblem.svg', size: 200 },
|
||||
]);
|
||||
|
||||
/** Kenney Particle Pack (CC0), auf 128 px verkleinert. */
|
||||
export const PARTICLES = Object.freeze([
|
||||
{ key: 'fx-smoke', file: 'kenney/particles/smoke.png' },
|
||||
{ key: 'fx-fire', file: 'kenney/particles/fire.png' },
|
||||
{ key: 'fx-spark', file: 'kenney/particles/spark.png' },
|
||||
{ key: 'fx-scorch', file: 'kenney/particles/scorch.png' },
|
||||
{ key: 'fx-muzzle', file: 'kenney/particles/muzzle.png' },
|
||||
{ key: 'fx-glow', file: 'kenney/particles/glow.png' },
|
||||
]);
|
||||
|
||||
/**
|
||||
* Kenney Top-down Shooter (CC0): Ausschnitt aus dem Tilesheet als Streifen mit
|
||||
* 64-px-Kacheln. Die Reihenfolge der Kacheln steht in GROUND_FRAMES.
|
||||
*/
|
||||
export const GROUND_SHEET = Object.freeze({ key: 'ground-tiles', file: 'kenney/tiles/ground_strip.png', frame: 64 });
|
||||
|
||||
/** Kachelindizes im Bodenstreifen. */
|
||||
export const GROUND_FRAMES = Object.freeze({
|
||||
dirtA: 0,
|
||||
dirtB: 1,
|
||||
rocks: Object.freeze([2, 3, 4]),
|
||||
bushes: Object.freeze([5, 6]),
|
||||
splat: 7,
|
||||
});
|
||||
|
||||
/**
|
||||
* Stellt alle Dateien in die Lade-Warteschlange.
|
||||
* @param {Phaser.Scene} scene
|
||||
* @param {string} staticBase URL des static-Ordners (mit abschließendem /).
|
||||
*/
|
||||
export function queueAssets(scene, staticBase) {
|
||||
scene.load.setPath(`${staticBase}assets/`);
|
||||
for (const sprite of SPRITES) {
|
||||
scene.load.svg(sprite.key, sprite.file, { width: sprite.size, height: sprite.size });
|
||||
}
|
||||
for (const particle of PARTICLES) {
|
||||
scene.load.image(particle.key, particle.file);
|
||||
}
|
||||
scene.load.spritesheet(GROUND_SHEET.key, GROUND_SHEET.file, {
|
||||
frameWidth: GROUND_SHEET.frame,
|
||||
frameHeight: GROUND_SHEET.frame,
|
||||
});
|
||||
scene.load.setPath('');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Phaser.Scene} scene
|
||||
* @param {string} key
|
||||
* @returns {boolean} true, wenn die echte Grafik (nicht der Platzhalter) geladen ist.
|
||||
*/
|
||||
export function hasTexture(scene, key) {
|
||||
return scene.textures.exists(key);
|
||||
}
|
||||
Reference in New Issue
Block a user