私はAndroid開発にまったく慣れていません.基本的なアクティビティ、マップ、sqliteなどを知っています.3Dオブジェクトを実装して、アプリ内でやり取りできるようにしたいと考えています. 少し検索した後、rajawali が最良の方法であることがわかりました。あなたと同じように、最初のチュートリアルから始めて、サンプル ドキュメントからソース コードを読みました。私が迷子になったのは、チュートリアルを一言一句従ったのに、スクリプトのエラーのためにアプリケーションを実行できないことです。誰かが Rajawali を以前に使用したことがある場合は、どこが間違っているかについていくつかの指針を示していただければ幸いです。(チュートリアルは 2 か月前に最後に更新されたので、かなり最近のものです)。チュートリアル
ここに私のソースコードがあります
主な活動:
package rajawali.tutorials;
import rajawali.RajawaliActivity;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends RajawaliActivity {
private Renderer mRenderer;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRenderer = new Renderer(this);
mRenderer.setSurfaceView(mSurfaceView);
super.setRenderer(mRenderer);
}
}
レンダラー:
package rajawali.tutorials;
import javax.microedition.khronos.opengles.GL10;
import android.content.Context;
import rajawali.lights.DirectionalLight;
import rajawali.materials.textures.ATexture.TextureException;
import rajawali.materials.textures.Texture;
import rajawali.primitives.Sphere;
import rajawali.renderer.RajawaliRenderer;
public class Renderer extends RajawaliRenderer {
private DirectionalLight mLight;
Sphere mSphere;
public Renderer(Context context) {
super(context);
setFrameRate(60);
}
public void initScene() {
mLight = new DirectionalLight(1f, 0.2f, -1.0f);
mLight.setColor(1.0f, 1.0f, 1.0f);
mLight.setPower(2);
try {
*DiffuseMaterial* material = new *DiffuseMaterial*(); //there is an error here (DiffuseMaterial cannot be rsolved as a type)
material.addTexture(new *Texture(R.drawable.earthtruecolor_nasa_big)*); //here (constructor Texture(int) cannot be defined)
mSphere = new Sphere(1, 24, 24);
mSphere.setMaterial(material);
mSphere.*addLight(mLight)*; //and here (The method addLight(DirectionalLight) is undefined for the type Sphere)
addChild(mSphere);
} catch (TextureException e) {
e.printStackTrace();
}
getCurrentCamera().setZ(4.2f);
}
@Override
public void onDrawFrame(GL10 glUnused) {
super.onDrawFrame(glUnused);
mSphere.setRotY(mSphere.getRotY() + 1);
}
}
できればスプーンフィードコードになりたくないのですが、エラーは「DiffuseMaterial」にあるようです。これはなぜですか、または min3D または Rajawali を使用する以外に 3D オブジェクトを操作するより良い方法はありますか?