通过模拟器左右上下键旋转3d正正方体,中键为光源开关
Activity类
package sim.feel;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.KeyEvent;
public class My3d extends Activity {
/** Called when the activity is first created. */
private MyRenderer renderer = new MyRenderer();
private GLSurfaceView glSurfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BitGL.init(getResources());
glSurfaceView = new GLSurfaceView(this);
glSurfaceView.setRenderer(renderer);
setContentView(glSurfaceView);
}
// 处理事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
renderer.onKeyDown(keyCode, event);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
renderer.onKeyUp(keyCode, event);
return super.onKeyUp(keyCode, event);
}
}
class BitGL {
public static Bitmap bitmap;
public static void init(Resources resources) {
bitmap = BitmapFactory.decodeResource(resources, R.drawable.img);
}
}
Renderer类
package sim.feel;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLSurfaceView.Renderer;
import android.opengl.GLUtils;
import android.view.KeyEvent;
public class MyRenderer implements Renderer {
float step = 0.4f;
boolean key;
boolean light = true;
float xrot, yrot; //x,y轴旋转
float xspeed, yspeed;//旋转的速度