[{"data":1,"prerenderedAt":634},["ShallowReactive",2],{"navigation_docs":3,"-vue-guide-scenes":159,"-vue-guide-scenes-surround":629},[4,29,57,76,100,124,152],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,12,16,20,24],{"title":5,"path":7,"stem":11},"1.getting-started\u002Findex",{"title":13,"path":14,"stem":15},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation",{"title":17,"path":18,"stem":19},"First Game","\u002Fgetting-started\u002Ffirst-game","1.getting-started\u002F2.first-game",{"title":21,"path":22,"stem":23},"SSR and Mounting","\u002Fgetting-started\u002Fssr-and-mounting","1.getting-started\u002F3.ssr-and-mounting",{"title":25,"path":26,"stem":27,"icon":28},"Skills","\u002Fgetting-started\u002Fskills","1.getting-started\u002F4.skills","i-lucide-sparkles",{"title":30,"icon":31,"path":32,"stem":33,"children":34},"Vue Guide","i-lucide-book-open","\u002Fvue-guide","2.vue-guide",[35,37,41,45,49,53],{"title":30,"path":32,"stem":36},"2.vue-guide\u002Findex",{"title":38,"path":39,"stem":40},"PhaserGame","\u002Fvue-guide\u002Fphaser-game","2.vue-guide\u002F1.phaser-game",{"title":42,"path":43,"stem":44},"Scenes","\u002Fvue-guide\u002Fscenes","2.vue-guide\u002F2.scenes",{"title":46,"path":47,"stem":48},"Primitives","\u002Fvue-guide\u002Fprimitives","2.vue-guide\u002F3.primitives",{"title":50,"path":51,"stem":52},"Composables and Bridge","\u002Fvue-guide\u002Fcomposables-and-bridge","2.vue-guide\u002F4.composables-and-bridge",{"title":54,"path":55,"stem":56},"Escape Hatches","\u002Fvue-guide\u002Fescape-hatches","2.vue-guide\u002F5.escape-hatches",{"title":58,"icon":59,"path":60,"stem":61,"children":62},"Nuxt Module","i-lucide-layers-3","\u002Fnuxt-module","3.nuxt-module",[63,65,68,72],{"title":58,"path":60,"stem":64},"3.nuxt-module\u002Findex",{"title":13,"path":66,"stem":67},"\u002Fnuxt-module\u002Finstallation","3.nuxt-module\u002F1.installation",{"title":69,"path":70,"stem":71},"Runtime Defaults","\u002Fnuxt-module\u002Fruntime-defaults","3.nuxt-module\u002F2.runtime-defaults",{"title":73,"path":74,"stem":75},"Client-only Wrapper","\u002Fnuxt-module\u002Fclient-only-wrapper","3.nuxt-module\u002F3.client-only-wrapper",{"title":77,"icon":78,"path":79,"stem":80,"children":81},"Examples","i-lucide-play-square","\u002Fexamples","4.examples",[82,84,88,92,96],{"title":77,"path":79,"stem":83},"4.examples\u002Findex",{"title":85,"path":86,"stem":87},"Minimal","\u002Fexamples\u002Fminimal","4.examples\u002F1.minimal",{"title":89,"path":90,"stem":91},"Imperative Escape Hatch","\u002Fexamples\u002Fimperative-escape-hatch","4.examples\u002F2.imperative-escape-hatch",{"title":93,"path":94,"stem":95},"Multi-scene","\u002Fexamples\u002Fmulti-scene","4.examples\u002F3.multi-scene",{"title":97,"path":98,"stem":99},"Nuxt Playground","\u002Fexamples\u002Fnuxt-playground","4.examples\u002F4.nuxt-playground",{"title":101,"icon":102,"path":103,"stem":104,"children":105},"API Reference","i-lucide-book-open-text","\u002Fapi-reference","5.api-reference",[106,108,112,116,120],{"title":101,"path":103,"stem":107},"5.api-reference\u002Findex",{"title":109,"path":110,"stem":111},"Vue Components","\u002Fapi-reference\u002Fvue-components","5.api-reference\u002F1.vue-components",{"title":113,"path":114,"stem":115},"Composables","\u002Fapi-reference\u002Fcomposables","5.api-reference\u002F2.composables",{"title":117,"path":118,"stem":119},"Types","\u002Fapi-reference\u002Ftypes","5.api-reference\u002F3.types",{"title":121,"path":122,"stem":123},"Nuxt Module Options","\u002Fapi-reference\u002Fnuxt-module-options","5.api-reference\u002F4.nuxt-module-options",{"title":125,"icon":126,"path":127,"stem":128,"children":129},"Guides","i-lucide-compass","\u002Fguides","6.guides",[130,132,136,140,144,148],{"title":125,"path":127,"stem":131},"6.guides\u002Findex",{"title":133,"path":134,"stem":135},"Performance","\u002Fguides\u002Fperformance","6.guides\u002F1.performance",{"title":137,"path":138,"stem":139},"Scene-first Design","\u002Fguides\u002Fscene-first-design","6.guides\u002F2.scene-first-design",{"title":141,"path":142,"stem":143},"Vue Reactivity vs Phaser Imperative Updates","\u002Fguides\u002Fvue-reactivity-vs-phaser-imperative-updates","6.guides\u002F3.vue-reactivity-vs-phaser-imperative-updates",{"title":145,"path":146,"stem":147},"Testing scene primitives in Vue","\u002Fguides\u002Ftesting-scene-primitives-in-vue","6.guides\u002F4.testing-scene-primitives-in-vue",{"title":149,"path":150,"stem":151},"Testing a Phaser canvas in Nuxt","\u002Fguides\u002Ftesting-a-phaser-canvas-in-nuxt","6.guides\u002F5.testing-a-phaser-canvas-in-nuxt",{"title":153,"path":154,"stem":155,"children":156,"icon":158},"Roadmap","\u002Froadmap","7.roadmap\u002Findex",[157],{"title":153,"path":154,"stem":155},"i-lucide-flag",{"id":160,"title":42,"body":161,"description":623,"extension":624,"links":625,"meta":626,"navigation":222,"path":43,"seo":627,"stem":44,"__hash__":628},"docs\u002F2.vue-guide\u002F2.scenes.md",{"type":162,"value":163,"toc":617},"minimark",[164,168,173,434,438,500,504,535,539,542,610,613],[165,166,167],"p",{},"Scenes stay first-class. The library does not replace Phaser scenes with a custom renderer abstraction.",[169,170,172],"h2",{"id":171},"define-a-scene","Define a scene",[174,175,181],"pre",{"className":176,"code":177,"filename":178,"language":179,"meta":180,"style":180},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { definePhaserScene } from '@onmax\u002Fphaser-vue'\n\nexport const mainScene = definePhaserScene({\n  key: 'main',\n  preload({ scene }) {\n    scene.load.image('logo', '\u002Flogo.png')\n  },\n  create({ scene }) {\n    scene.add.image(400, 220, 'logo')\n  },\n  update({ scene }, time, delta) {\n    \u002F\u002F Phaser still owns per-frame work.\n  },\n})\n","src\u002Fgame\u002Fmain-scene.ts","ts","",[182,183,184,217,224,249,270,289,328,334,348,383,388,414,421,426],"code",{"__ignoreMap":180},[185,186,189,193,197,201,204,207,210,214],"span",{"class":187,"line":188},"line",1,[185,190,192],{"class":191},"s7zQu","import",[185,194,196],{"class":195},"sMK4o"," {",[185,198,200],{"class":199},"sTEyZ"," definePhaserScene",[185,202,203],{"class":195}," }",[185,205,206],{"class":191}," from",[185,208,209],{"class":195}," '",[185,211,213],{"class":212},"sfazB","@onmax\u002Fphaser-vue",[185,215,216],{"class":195},"'\n",[185,218,220],{"class":187,"line":219},2,[185,221,223],{"emptyLinePlaceholder":222},true,"\n",[185,225,227,230,234,237,240,243,246],{"class":187,"line":226},3,[185,228,229],{"class":191},"export",[185,231,233],{"class":232},"spNyl"," const",[185,235,236],{"class":199}," mainScene ",[185,238,239],{"class":195},"=",[185,241,200],{"class":242},"s2Zo4",[185,244,245],{"class":199},"(",[185,247,248],{"class":195},"{\n",[185,250,252,256,259,261,264,267],{"class":187,"line":251},4,[185,253,255],{"class":254},"swJcz","  key",[185,257,258],{"class":195},":",[185,260,209],{"class":195},[185,262,263],{"class":212},"main",[185,265,266],{"class":195},"'",[185,268,269],{"class":195},",\n",[185,271,273,276,279,283,286],{"class":187,"line":272},5,[185,274,275],{"class":254},"  preload",[185,277,278],{"class":195},"({",[185,280,282],{"class":281},"sHdIc"," scene",[185,284,285],{"class":195}," })",[185,287,288],{"class":195}," {\n",[185,290,292,295,298,301,303,306,308,310,313,315,318,320,323,325],{"class":187,"line":291},6,[185,293,294],{"class":199},"    scene",[185,296,297],{"class":195},".",[185,299,300],{"class":199},"load",[185,302,297],{"class":195},[185,304,305],{"class":242},"image",[185,307,245],{"class":254},[185,309,266],{"class":195},[185,311,312],{"class":212},"logo",[185,314,266],{"class":195},[185,316,317],{"class":195},",",[185,319,209],{"class":195},[185,321,322],{"class":212},"\u002Flogo.png",[185,324,266],{"class":195},[185,326,327],{"class":254},")\n",[185,329,331],{"class":187,"line":330},7,[185,332,333],{"class":195},"  },\n",[185,335,337,340,342,344,346],{"class":187,"line":336},8,[185,338,339],{"class":254},"  create",[185,341,278],{"class":195},[185,343,282],{"class":281},[185,345,285],{"class":195},[185,347,288],{"class":195},[185,349,351,353,355,358,360,362,364,368,370,373,375,377,379,381],{"class":187,"line":350},9,[185,352,294],{"class":199},[185,354,297],{"class":195},[185,356,357],{"class":199},"add",[185,359,297],{"class":195},[185,361,305],{"class":242},[185,363,245],{"class":254},[185,365,367],{"class":366},"sbssI","400",[185,369,317],{"class":195},[185,371,372],{"class":366}," 220",[185,374,317],{"class":195},[185,376,209],{"class":195},[185,378,312],{"class":212},[185,380,266],{"class":195},[185,382,327],{"class":254},[185,384,386],{"class":187,"line":385},10,[185,387,333],{"class":195},[185,389,391,394,396,398,401,404,406,409,412],{"class":187,"line":390},11,[185,392,393],{"class":254},"  update",[185,395,278],{"class":195},[185,397,282],{"class":281},[185,399,400],{"class":195}," },",[185,402,403],{"class":281}," time",[185,405,317],{"class":195},[185,407,408],{"class":281}," delta",[185,410,411],{"class":195},")",[185,413,288],{"class":195},[185,415,417],{"class":187,"line":416},12,[185,418,420],{"class":419},"sHwdD","    \u002F\u002F Phaser still owns per-frame work.\n",[185,422,424],{"class":187,"line":423},13,[185,425,333],{"class":195},[185,427,429,432],{"class":187,"line":428},14,[185,430,431],{"class":195},"}",[185,433,327],{"class":199},[169,435,437],{"id":436},"register-the-scene","Register the scene",[174,439,444],{"className":440,"code":441,"filename":442,"language":443,"meta":180,"style":180},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003CPhaserGame :width=\"800\" :height=\"480\">\n  \u003CPhaserScene scene-key=\"main\" :definition=\"mainScene\" \u002F>\n\u003C\u002FPhaserGame>\n","src\u002FApp.vue","vue",[182,445,446,486,491],{"__ignoreMap":180},[185,447,448,451,453,456,459,461,464,467,469,471,474,476,478,481,483],{"class":187,"line":188},[185,449,450],{"class":195},"\u003C",[185,452,38],{"class":254},[185,454,455],{"class":195}," :",[185,457,458],{"class":232},"width",[185,460,239],{"class":195},[185,462,463],{"class":195},"\"",[185,465,466],{"class":366},"800",[185,468,463],{"class":195},[185,470,455],{"class":195},[185,472,473],{"class":232},"height",[185,475,239],{"class":195},[185,477,463],{"class":195},[185,479,480],{"class":366},"480",[185,482,463],{"class":195},[185,484,485],{"class":195},">\n",[185,487,488],{"class":187,"line":219},[185,489,490],{"class":199},"  \u003CPhaserScene scene-key=\"main\" :definition=\"mainScene\" \u002F>\n",[185,492,493,496,498],{"class":187,"line":226},[185,494,495],{"class":195},"\u003C\u002F",[185,497,38],{"class":254},[185,499,485],{"class":195},[169,501,503],{"id":502},"what-the-wrapper-adds","What the wrapper adds",[505,506,507,514,517,520],"ul",{},[508,509,510,511,297],"li",{},"Stable scene registration through an explicit ",[182,512,513],{},"sceneKey",[508,515,516],{},"Ready-state tracking for child primitives.",[508,518,519],{},"Dev warnings for duplicate scene keys.",[508,521,522,523,526,527,530,531,534],{},"Simple ",[182,524,525],{},"active",", ",[182,528,529],{},"visible",", and ",[182,532,533],{},"autoStart"," control on the scene component.",[169,536,538],{"id":537},"multiple-scenes","Multiple scenes",[165,540,541],{},"You can mount more than one managed scene in the same game.",[174,543,545],{"className":440,"code":544,"filename":442,"language":443,"meta":180,"style":180},"\u003CPhaserGame :width=\"800\" :height=\"300\" background-color=\"#0f172a\">\n  \u003CPhaserScene scene-key=\"gameplay\" :definition=\"gameplayScene\" \u002F>\n  \u003CPhaserScene scene-key=\"hud\" :definition=\"hudScene\" \u002F>\n\u003C\u002FPhaserGame>\n",[182,546,547,592,597,602],{"__ignoreMap":180},[185,548,549,551,553,555,557,559,561,563,565,567,569,571,573,576,578,581,583,585,588,590],{"class":187,"line":188},[185,550,450],{"class":195},[185,552,38],{"class":254},[185,554,455],{"class":195},[185,556,458],{"class":232},[185,558,239],{"class":195},[185,560,463],{"class":195},[185,562,466],{"class":366},[185,564,463],{"class":195},[185,566,455],{"class":195},[185,568,473],{"class":232},[185,570,239],{"class":195},[185,572,463],{"class":195},[185,574,575],{"class":366},"300",[185,577,463],{"class":195},[185,579,580],{"class":232}," background-color",[185,582,239],{"class":195},[185,584,463],{"class":195},[185,586,587],{"class":212},"#0f172a",[185,589,463],{"class":195},[185,591,485],{"class":195},[185,593,594],{"class":187,"line":219},[185,595,596],{"class":199},"  \u003CPhaserScene scene-key=\"gameplay\" :definition=\"gameplayScene\" \u002F>\n",[185,598,599],{"class":187,"line":226},[185,600,601],{"class":199},"  \u003CPhaserScene scene-key=\"hud\" :definition=\"hudScene\" \u002F>\n",[185,603,604,606,608],{"class":187,"line":251},[185,605,495],{"class":195},[185,607,38],{"class":254},[185,609,485],{"class":195},[165,611,612],{},"Use that pattern for HUD overlays or auxiliary scenes. The wrapper still leaves Phaser's own scene APIs available when you need pause, resume, sleep, or restart behavior.",[614,615,616],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":180,"searchDepth":219,"depth":219,"links":618},[619,620,621,622],{"id":171,"depth":219,"text":172},{"id":436,"depth":219,"text":437},{"id":502,"depth":219,"text":503},{"id":537,"depth":219,"text":538},"Define managed scenes with stable keys and keep Phaser's scene model intact.","md",null,{},{"title":42,"description":623},"2XlM6a9w7lV3FLRvz7T5OGMp66XetYiau4Ow2wpHZ-k",[630,632],{"title":38,"path":39,"stem":40,"description":631,"children":-1},"Use PhaserGame as the host that creates and destroys Phaser.Game and provides the game-level runtime scope.",{"title":46,"path":47,"stem":48,"description":633,"children":-1},"Create a small set of Phaser objects declaratively when scene setup is simple and low-frequency.",1777965752577]