SOULGATE/client/js/renderArena.js
2026-05-04 03:42:47 +02:00

40 lines
1.1 KiB
JavaScript

// renderArena.js : dessin de l'arene a partir de la map Tiled + sprite Soulgate
import { Sprite, Assets } from 'pixi.js';
import { loadTiledMap, drawTiledMap } from './tiledLoader.js';
import { iso, getTw, getTh } from './renderer.js';
import { SOULGATE_X, SOULGATE_Y } from './constants.js';
let _mapData = null;
export async function loadArenaMap() {
if (_mapData) return;
_mapData = await loadTiledMap('assets/maps/arrena.tmj');
await Assets.load('assets/soulgate.png');
}
export function drawStaticArena(layer) {
if (!_mapData) {
console.warn('arena map not loaded yet');
return;
}
drawTiledMap(layer, _mapData);
_drawSoulgate(layer);
}
function _drawSoulgate(layer) {
const tex = Assets.get('assets/soulgate.png');
if (!tex) return;
const tw = getTw();
const th = getTh();
const sprite = new Sprite(tex);
sprite.anchor.set(0.5, 1.0);
const p = iso(SOULGATE_X, SOULGATE_Y);
sprite.x = p.x;
sprite.y = p.y + th / 2;
// taille : ~1.5 unite monde de large (source 128px), assez present sans ecraser
sprite.scale.set((tw * 1.5) / 128);
layer.addChild(sprite);
}