加载level文件
使用LevelManager加载文件, 并管理它,提供接口加载和卸载level文件,你可以覆盖一些接口。
通过MXML加载
1.
<mx:Canvas xmlns:mx="http://www.adobe.com.2006/mxml" xmlns:pb="PBLabs.Engine.MXML.*">
2.
<pb:LevelFileReference filename="..Assets/Levels/level.pbelevel" level="0" id="myLevelReference" />
3.
<pb:GroupReference name="Managers" level="0" id="managerGroup" />
4.
<pb:GroupReference name="SpriteSheets" level="0" id="spriteSheetsGroup" />
5.
<pb:GroupReference name="Objects" level="0" id="objectsGroup" />
6.
<pb:GroupReference name="Everything" level="0" id="everythingGroup" />
7.
</mx:Canvas>
当LevelManager加载层,4个组获得对象,被LevelFileReference 、GroupReference2个类共享的level属性不过是索引定义加载的文件或层的编号
1.// 加载0层启动GAME
2.
LevelManager.Instance.LoadLevel(0);
3.
LevelManager.Instance.Start();
当0层加载后,对象创建,游戏启动, LevelManager 分发基于加载和卸载level文件的事件
01.// Add a listener to respond to level loaded event
02.
LevelManager.Instance.addEventListener(LevelEvent.LEVEL_LOADED_EVENT, levelLoadedHandler, false, 0, true);
03.
// Load level 0 and start game.
04.
LevelManager.Instance.LoadLevel(0);
05.
LevelManager.Instance.Start();
06.
private function levelLoadedHandler(event:LevelEvent):void
07.
{
08.
// level is loaded!
09.
}
通过ActionScript加载
与通过MXML相似
01.// Add file and group references
02.
LevelManager.Instance.AddFileReference(0, "../Assets/Levels/level.pbelevel");
03.
LevelManager.Instance.AddGroupReference(0, "Managers");
04.
LevelManager.Instance.AddGroupReference(0, "SpriteSheets");
05.
LevelManager.Instance.AddGroupReference(0, "Objects");
06.
LevelManager.Instance.AddGroupReference(0, "Everything");
07.
// Load level 0 and start game.
08.
LoadManager.Instance.LoadLevel(0);
09.
LoadManager.Instance.Start();
对XML的其他使用
level文件和TemplateManager用来加载和实例XML数据,Serialization类可从XML中实例化,但建议使用TemplateManager
完整TAG列表
- things: The root tag.
- template: A child of the root tag, specifying that the contained XML is a template definition.
- entity: A child of the root tag, specifying that the contained XML is an entity definition.
- group: A child of the root tag, specifying that the contained XML is a group definition.
- component: A child of the template or entity tag, specifying that the contained XML is a component definition.
- objectReference: A child of the group tag, specifying the name of a template or object to instantiate with the group.
- groupReference: A child of the group tag, specifying the name of a group to instantiate with the parent group.
完整属性列表
- name:
- On template tags, it specifies the name of the template.
- On entity tags, it specifies both the name of the entity in XML, and the name of the object that is instantiated from it.
- On group tags, it specifies the name of the group.
- On component tags, it specifies the name of the component once registered with its owning IEntity.
- On objectReference tags, it specifies the name of the template or entity to reference.
- On groupReference tags, it specifies the name of the group to reference.
- template: Exists on a template or entity tag and specifies the name of a template to inherit component definitions from.
- nameReference: Specifies the name of an entity to lookup and set on the tag.
- objectReference: Specifies the name of a template or entity to instantiate and set on the tag.
- entityName: Specifies the name of a template or entity to lookup and search for a compatible component to set on the tag.
- w: Specifies the name of a component to reference. If used without a componentReference attribute, the component is looked up on the same entity that this attribute is a part of.
- type:
- On a component, specifies the fully qualified type to use to instantiate the component.
- On a field, specifies the type to use when instantiating the field for the parent tag.
- childType: Specifies the type to use when instantiating objects to add to an array or dictionary.
- filename: For fields that hold resources, this lets you specify a file path. The field must be of a compatible type to the type of the resource as specified to the resource manager. The resource will be loaded and assigned to the field.
本文深入探讨了游戏开发中LevelManager组件如何加载level文件及其内部工作原理,包括MXML和ActionScript两种加载方式,以及如何通过事件响应加载和卸载level文件的过程。此外,介绍了XML文件在LevelManager组件中的应用以及与TemplateManager和Serialization类的关联。通过详细的步骤和代码示例,读者可以全面理解并掌握LevelManager组件在游戏开发中的高效资源管理。
764

被折叠的 条评论
为什么被折叠?



