XML资源加载框架

时间:2014-07-02 05:38:06

标签: java xml javafx

简介

很抱歉,如果这不合适,或者信息不足,我会尝试尽可能多地收拾这些信息。我正在创建一个带有资产创建者的2D游戏引擎' (JavaFX,但不相关),它将纹理链接到称为实体的XML(JDOM)文件,然后将这些实体链接到级别。此外,'引擎'它通过代码将实体和关卡链接到游戏机制中。基本上,引擎采用称为“状态”的东西,类似于Slick2D(保持游戏循环代码)。但每次进入状态时,它都会通过抽象初始化函数中的资源加载器加载所有游戏资产。

XML文件的外观:

state.xml

<resources>
   <resource name="hud-spritesheet" type="texture" path="./resources/hud.png"></resource>
</resources>

<entities>
   <entity name="myEntity">
     <resource name="body-spritesheet" type="texture" path="./resources/texture1.png"></resource>
     <resource name="actions-spritesheet" type="texture" path="./resources/texture2.png"></resources>
   </entity>
</entities>

&#39;引擎&#39;

的外观如何

MyState.java

...
Texture myTexture;
MyEntity myPlayer;
public void onInit(ResourceLoader resources){
     resources.registerTexture("hud-spritesheet");
     myTexture = resources.getTexture("hud-spritesheet");

     //World finds myEntity element and gives it to myPlayers entity loader
     getWorld().addEntity(myPlayer, resources.getEntity("myEntity"));
}
...

MyPlayer.java

...
Texture texture;
public void onInit(EntityLoader entityLoader){
     texture = entityLoader.getTexture("texture-");
}
...

问题

有更好的方法吗?资产创建者是为艺术家和关卡设计师/作家设计的,它意味着&#34;创建新实体,给它资源,赋予它属性,将其添加到关卡&#34;。是否有更少的记忆占用选项,更适合我的困境?

0 个答案:

没有答案