JPCT加载多个对象

时间:2012-07-14 20:01:50

标签: android 3d jpct

我目前正在学习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文件具有多个对象,则会将纹理应用于所有这些对象。 好的,到目前为止一切都很好。

但是,如果我在同一个文件中有数百个对象来为游戏创建一个场景,每个对象都有自己的纹理呢?

我必须逐个加载它们的纹理吗?

有没有办法自动化这个?也许某种文件格式已经存在纹理关系或类似的东西?

感谢任何帮助!

2 个答案:

答案 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);