zoukankan      html  css  js  c++  java
  • 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/

     

     

  • 相关阅读:
    webpack的最简单应用,只使用js与css的打包
    数据统计表插件,highcharts插件的简单应用
    C#中的特性 (Attribute) 入门 (二)
    C#中的特性 (Attribute) 入门 (一)
    SQLServer存储过程入门
    C#拖拽操作
    C#剪切板
    .Net中的IO
    Android四大组件-服务
    AlertDialog对话框
  • 原文地址:https://www.cnblogs.com/kfarvid/p/2080318.html
Copyright © 2011-2022 走看看