Prepare support for adding extra elements to map layers
This commit is contained in:
parent
e77b54f01b
commit
ec0e51231f
4 changed files with 58 additions and 46 deletions
|
@ -39,7 +39,7 @@ export class GameContext implements CollidableGroup {
|
|||
);
|
||||
}
|
||||
|
||||
private static async loadMap(renderer: Renderer, name: string): Promise<[SpriteView, Collidable[]]> {
|
||||
private static async loadMap(renderer: Renderer, name: string): Promise<[SpriteView[], Collidable[]]> {
|
||||
const map = new MapData(await getJSON(`resources/map/${name}.json`));
|
||||
return [await loadMap(renderer, map), mkCollision(map.collision)];
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ export class GameContext implements CollidableGroup {
|
|||
|
||||
private constructor(
|
||||
private readonly renderer: Renderer,
|
||||
private readonly mapView: SpriteView,
|
||||
private readonly mapView: SpriteView[],
|
||||
private readonly player: EntityContext,
|
||||
private readonly entities: EntityContext[],
|
||||
private readonly collision: Collidable[],
|
||||
|
@ -168,7 +168,8 @@ export class GameContext implements CollidableGroup {
|
|||
this.renderer.setCenter(this.player.pos);
|
||||
this.renderer.clear();
|
||||
|
||||
this.mapView.render();
|
||||
for (const layer of this.mapView)
|
||||
layer.render();
|
||||
|
||||
for (const r of [...this.entities, this.player])
|
||||
r.render(time);
|
||||
|
|
Reference in a new issue