summaryrefslogtreecommitdiff
path: root/src/bootstrap.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/bootstrap.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/bootstrap.js')
-rw-r--r--src/bootstrap.js16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/bootstrap.js b/src/bootstrap.js
index 65afc17..489ad8d 100644
--- a/src/bootstrap.js
+++ b/src/bootstrap.js
@@ -1,12 +1,13 @@
game.bootstrap = (() => {
const scripts = [
- { src: ['src/utils/objectEquivalence.js', 'src/utils/unitizeVector.js', 'src/utils/clamp.js'], id: 'utils'},
- { src: ['src/render/graphics.js'], id: 'graphics' },
+ { src: ['src/utils/objectEquivalence.js', 'src/utils/unitizeVector.js', 'src/utils/clamp.js', 'src/utils/loadLevel.js'], id: 'utils'},
+ { src: ['src/render/graphics.js', 'src/render/sprites.js'], id: 'graphics' },
{ src: ['src/components/component.js'], id: 'component' },
{
src: [
'src/components/position.js', 'src/components/momentum.js', 'src/components/gridPosition.js',
'src/components/appearence.js', 'src/components/controllable.js', 'src/components/pushable.js',
+ 'src/components/loadPriority.js',
],
id: 'components'
},
@@ -69,6 +70,7 @@ game.bootstrap = (() => {
}
const loadAssets = function() {
+ game.assets = {};
const promises = [];
for (let key in assets) {
promises.push(loadAsset(assets[key], (asset) => {
@@ -82,8 +84,14 @@ game.bootstrap = (() => {
}));
}
- game.assets = {};
- loadAssets().then(() => {
+ const loadLevels = function() {
+ game.levels = [];
+ fetch('/levels')
+ .then((r) => r.json())
+ .then((r) => game.levels = r);
+ }
+
+ Promise.all([loadAssets(), loadLevels()]).then(() => {
loadScripts(() => game.initialize());
})
})();