我目前正在学习Android的JPCT。 在阅读了一些教程和示例之后,我注意到每个人都在场景中逐个加载对象和纹理,如下所示:
cube = loadModel(getAssets().open("cube.3ds"), 1);
TextureManager.getInstance().addTexture("tex", new Texture(getAssets().open("text.png")));
cube.setTexture("tex");
cube.build();
world.addObject(cube);
这应该加载一个3ds文件(我在Blender上创建),对它应用纹理,然后将它放在世界上。 如果此3ds文件具有多个对象,则会将纹理应用于所有这些对象。 好的,到目前为止一切都很好。
但是,如果我在同一个文件中有数百个对象来为游戏创建一个场景,每个对象都有自己的纹理呢?
我必须逐个加载它们的纹理吗?
有没有办法自动化这个?也许某种文件格式已经存在纹理关系或类似的东西?
感谢任何帮助!
答案 0 :(得分:3)
自己找到解决方案!
您不必手动加载纹理,如
cube.setTexture("tex");
只要您将纹理文件名与Blender中指定的纹理文件名相同,就可以将其添加到TextureManager中:
TextureManager.getInstance().addTexture("text.png", new Texture(getAssets().open("text.png")));
通过这样做,Load方法将自己应用纹理!
答案 1 :(得分:0)
你应该这样:
Texture texture = new Texture(BitmapHelper.rescale(BitmapHelper.convert(getResources().getDrawable(R.drawable.image)), 64, 64));
TextureManager.getInstance().addTexture("texture", texture);