diff --git a/js/libmain.js b/js/libmain.js index e0acbb4..3a58fea 100644 --- a/js/libmain.js +++ b/js/libmain.js @@ -11,14 +11,19 @@ } var libmain= {}; - libmain.settings= {}; /////////////////////////////////////// set default settings + libmain.settings= {}; - libmain.settings.fixed_ratio=16/9; - libmain.settings.use_fixed_aspect_ratio=true; - libmain.settings.show_fps=true; - libmain.settings.use_anti_alias=true; + libmain.settings.render= {}; + libmain.settings.render.fixed_ratio=16/9; + libmain.settings.render.use_fixed_aspect_ratio=true; + libmain.settings.render.show_fps=true; + libmain.settings.render.use_anti_alias=true; + libmain.settings.render.resolution=1; + + libmain.settings.game= {}; + libmain.settings.game.use_anti_alias=true; /////////////////////////////////////// init canvas and frame @@ -43,21 +48,21 @@ libmain.renderer=await PIXI.autoDetectRenderer({ "preference":"webgpu", "canvas":libmain.canvas, - "antialias":libmain.settings.use_anti_alias, + "antialias":libmain.settings.render.use_anti_alias, + "resolution":libmain.settings.render.resolution, "backgroundAlpha":0, "width":0, "height":0 }); - libmain.stage= {}; + libmain.scenes= {}; - libmain.stage.root=new PIXI.Container(); - libmain.stage.root.sortableChildren=true; - libmain.stage.root.boundsArea=new PIXI.Rectangle(0, 0, 0, 0); - libmain.stage.root.cullArea=libmain.stage.root.boundsArea; + libmain.scenes.root=new PIXI.Container(); + libmain.scenes.root.boundsArea=new PIXI.Rectangle(0, 0, 0, 0); + libmain.scenes.root.cullArea=libmain.scenes.root.boundsArea; libmain.render_tick=function() { try { - libmain.renderer.render(libmain.stage.root); + libmain.renderer.render(libmain.scenes.root); } catch(e) { console.error(e); if(typeof loadfail=="function") { @@ -73,20 +78,39 @@ /////////////////////////////////////// add layered containers - libmain.stage.menu= {}; + libmain.scenes.menu= {}; + libmain.scenes.menu.startpage=new PIXI.Container(); + libmain.scenes.menu.pause=new PIXI.Container(); + libmain.scenes.menu.settings=new PIXI.Container(); + libmain.scenes.menu.background=new PIXI.Container(); - libmain.stage.menu.start=new PIXI.Container(); - libmain.stage.menu.pause=new PIXI.Container(); - libmain.stage.menu.settings=new PIXI.Container(); - libmain.stage.hud=new PIXI.Container(); + libmain.scenes.root.addChildAt(libmain.scenes.menu.startpage, 9); + libmain.scenes.root.addChildAt(libmain.scenes.menu.pause, 8); + libmain.scenes.root.addChildAt(libmain.scenes.menu.settings, 7); + libmain.scenes.root.addChildAt(libmain.scenes.menu.background, 6); + + libmain.scenes.game= {}; + libmain.scenes.game.hud=new PIXI.Container(); + libmain.scenes.game.screen_effects=new PIXI.Container(); + libmain.scenes.game.judgment_fx=new PIXI.Container(); + libmain.scenes.game.player=new PIXI.Container(); + libmain.scenes.game.notes=new PIXI.Container(); + libmain.scenes.game.background=new PIXI.Container(); + + libmain.scenes.root.addChildAt(libmain.scenes.game.hud, 5); + libmain.scenes.root.addChildAt(libmain.scenes.game.screen_effects, 4); + libmain.scenes.root.addChildAt(libmain.scenes.game.judgment_fx, 3); + libmain.scenes.root.addChildAt(libmain.scenes.game.player, 2); + libmain.scenes.root.addChildAt(libmain.scenes.game.notes, 1); + libmain.scenes.root.addChildAt(libmain.scenes.game.background, 0); /////////////////////////////////////// end of setup // document resize handler libmain.onresize=function() { var res=[document.body.clientWidth, document.body.clientHeight, 0, 0]; - if(libmain.settings.use_fixed_aspect_ratio) { - res=libutil.calcresize(document.body.clientWidth, document.body.clientHeight, libmain.settings.fixed_ratio); + if(libmain.settings.render.use_fixed_aspect_ratio) { + res=libutil.calcresize(document.body.clientWidth, document.body.clientHeight, libmain.settings.render.fixed_ratio); } libmain.canvas.width=res[0]; libmain.canvas.height=res[1]; @@ -94,8 +118,8 @@ libmain.canvas.style.height=res[1]+"px"; libmain.canvas.style.left=res[2]+"px"; libmain.canvas.style.top=res[3]+"px"; - libmain.stageroot.boundsArea.width=res[0]; - libmain.stageroot.boundsArea.height=res[1]; + libmain.scenes.root.boundsArea.width=res[0]; + libmain.scenes.root.boundsArea.height=res[1]; libmain.renderer.width=res[0]; libmain.renderer.height=res[1]; };