min3d を使用してライブ壁紙アプリケーションに 3d オブジェクトを読み込もうとしましたが、「E/AndroidRuntime(5989): android.content.res.Resources$NotFoundException: Resource ID #0x0」という例外があります。
「sunflower_obj」と「sunflower_mlt」のファイルを「res/raw」フォルダに、「sunflower.jpg」を「res/drawable」フォルダに入れます。これが私のコードです:
package com.electricpunch.wallpaper;
import min3d.core.Object3dContainer;
import min3d.objectPrimitives.ParticleSprite;
import min3d.parser.IParser;
import min3d.parser.Parser;
import min3d.wallpaper.CommonRender;
import android.content.Context;
import android.content.res.Resources;
import android.util.Log;
public class TestRenderer extends CommonRender {
private Context mContext;
private float mCameraPosition;
private Object3dContainer objModel;
public TestRenderer(Context _context) {
super(_context);
this.mContext = _context;
mCameraPosition = 0.5f;
}
@Override
public void initScene() {
IParser parser = Parser.createParser(Parser.Type.OBJ, mContext.getResources(), "com.electricpunch.wallpaper:raw/sunflower_obj", true);
parser.parse();
objModel = parser.getParsedObject();
objModel.scale().x = objModel.scale().y = objModel.scale().z = .7f;
scene.addChild(objModel);
}
@Override
public void updateScene() {
objModel.rotation().x++;
objModel.rotation().z++;
}
@Override
public void onTouchUp(int x, int y) {
Log.i("TAG", "Touch");
}
@Override
public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) {
mCameraPosition = xOffset;
}
}