diff options
Diffstat (limited to 'src/systems/render.js')
-rw-r--r-- | src/systems/render.js | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/systems/render.js b/src/systems/render.js index 0a4c72d..4ec67c7 100644 --- a/src/systems/render.js +++ b/src/systems/render.js @@ -2,12 +2,18 @@ game.system.Render = (graphics) => { const update = (elapsedTime, entities) => { graphics.clear(); - for (let id in entities) { - const entity = entities[id]; + const entitiesArray = Object.keys(entities).map(key => entities[key]); + const sortedEntities = entitiesArray.sort((a, b) => { + const aprior = a.hasComponent("loadPriority") ? a.components.loadPriority.priority : 0; + const bprior = b.hasComponent("loadPriority") ? b.components.loadPriority.priority : 0; + return bprior - aprior; + }); + + sortedEntities.forEach((entity) => { if (entity.sprite && entity.hasComponent("position") && entity.hasComponent("appearance")) { entity.sprite.draw(elapsedTime, {...entity.components.position, ...entity.components.appearance}); } - } + }); } return { update }; };
\ No newline at end of file |