summaryrefslogtreecommitdiff
path: root/src/systems/render.js
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-04-04 18:30:11 -0600
committerLogan Hunt <loganhunt@simponic.xyz>2022-04-04 18:30:11 -0600
commitdee568c51dbf2393aa7bd75f4241602af8022a2c (patch)
tree2e559ede69540b680a00ccf20bf96ff998230ed8 /src/systems/render.js
parent14ddb31441e35dce7425385948a9ee63b262cece (diff)
downloadbbiy-dee568c51dbf2393aa7bd75f4241602af8022a2c.tar.gz
bbiy-dee568c51dbf2393aa7bd75f4241602af8022a2c.zip
Fix flickering issue by having singleton sprites; add loading priority; load levels from source
Diffstat (limited to 'src/systems/render.js')
-rw-r--r--src/systems/render.js12
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