我制作了一个包含三个场景的任务游戏。玩家可以从一个场景移动到另一个场景并返回。(如著名的经典任务:Neverhood、Machinarium、猴岛的诅咒)每个场景都有自己的对象、类和图形元素包。这是一个场景的脚本外观。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.gamequery-0.5.0.2.js"></script>
<!-- ////////////////////////////////////////////////
/////////// Charecters ////////////////////
/////////////////////////////////////////////////////////////// -->
<script type="text/javascript" src="js/charecters/player.js" id="player_anime"></script>
<script type="text/javascript" src="js/charecters/mama.js" ></script>
<!-- ////////////////////////////////////////////////
/////////// Scene globals ////////////////////
/////////////////////////////////////////////////////////////// -->
<script type="text/javascript" src="js/scene_globals/scene2/audio.js"></script>
<script type="text/javascript" src="js/scene_globals/scene2/background.js" ></script>
<script type="text/javascript" src="js/scene_globals/scene2/scene.js"></script>
<!-- ////////////////////////////////////////////////
/////////// Game controls ////////////////////
/////////////////////////////////////////////////////////////// -->
<script type="text/javascript" src="js/game_control.js"></script>
我想为每个场景异步加载脚本,以解决内存使用问题。但我意识到,即使我销毁所有脚本并为下一个场景加载其他脚本,对象和图形元素仍然保留在内存中。
这是一般算法:
1) 为第一个场景加载图形和脚本。2) 用户通过第一个场景 3) 擦除第一个场景的所有对象、脚本和图形 4) 加载第二个场景所需的所有内容
还有另一种方法:我可以将每个场景的所有内容放入 iframe 中,而不是异步解决方案。因此,当 iframe 重新加载到下一个场景时,所有对象和图形都会擦除。但这里还有一个问题——如何从父页面使用 iframe 中的所有对象和图形。(我有一些互动)
我希望我糟糕的英语足以说明问题。
等待任何建议。