简介
很抱歉,如果这不合适,或者信息不足,我会尝试尽可能多地收拾这些信息。我正在创建一个带有资产创建者的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;。是否有更少的记忆占用选项,更适合我的困境?