Vortex2D.NE的Scene派生类的构造过程

Scene构造过程:

一、sceneName:场景名:其配置文件是以场景名来进行命名的。其值为:删除掉“Scene”的类名。具体执行了GetType().Name.Replace("Scene", "");

二、根据xmlScene进行初始化。xml文件一共必须有3个以及非必要css资源1个。分别是:

1.         Scenes\resources.xml:其主要存放Scene基类对象级的资源,如鼠标对象与字体对象。存放在_resources中的_sharedBundle对象中

2.         Scenes\’ 场景名’\ ’ 场景名’.resources.xml:主要是Scene对象中派生类中(派生类特有的资源)。存放在_resources中的_sceneBundle对象中

3.         Scenes\’ 场景名’\ ’ 场景名’.layout.xml:主要是Scene(派生类特有的规划配置文件)。(SceneLayoutLoaderProcessDocument过程中对xml文件进行处理,其处理模式是使用类似反射的技术来对Node类进行属性赋值。在ProcessNodeContent过程是处理Scene中的子节点对象。SceneLayoutLoaderProcessNode过程为根据layout文件中的Scene下的子节点进行Node对象创建的过程,ProcessElementNodeProperties为处理该节点的属性赋值过程)

4.         Scenes\’ 场景名’\ ’ 场景名’.css:主要是Scene中用到的输出文字所使用的样式配置文件。

5.         Scenes\ Graphics\:里面存放了2中以及1中所定义的所有资源文件。

三、构造时先执行InitializeScene(场景名)进行二中的根据配置文件进行初始化。

四、只要文件没有问题,ResourceCollection对象在创建的时候,会创建出ResourceFileParser类对象去会执行ProcessSprites(document); ProcessSpriteCollections(document); ProcessFonts(document); ProcessShaders(document); ProcessParticleEffects(document); ProcessCursors(document);的方法进行各种对象的载入。ResourceCollection对象会把从xml中解释出来的对象存放到_disposableList中(在对象释放时把_disposableList中的所有对象释放掉),以及存放在_resourceMap中,供外界提取用。

由于有源码,因此,具体的研究分析得对代码的详细分析,这里提供其构建的过程,方便大家分析的时候对问题的定位。

下面是本人在开发过程中对场景的问题分析的记录:

 

无限场景:在调试过程中,发现对场景的大小进行赋值后,有很多不顺的事情发生,而我觉得,无论在游戏开发还是在程序开发过程中,场景不应该有大小,那才叫自由,因此,在此记录下,使用Scene时使用无限场景,不对其大小进行赋值。

 

原创作品出自努力偷懒,转载请说明文章出处http://www.cnblogs.com/kfarvid/

 

 

posted @ 2011-06-14 10:02  努力偷懒  阅读(1285)  评论(1编辑  收藏  举报