我已经创造了Android的OpenGL中的3D立方体,我可以在X轴采用onTouch事件转,但我想用它作为UI,例如我想onTouch事件得到它,这样,当一面朝向相机,如果你点击它可以作为一个的onClick监听器表面,但我有麻烦,我使用检查什么脸面对相机的if语句,我的整个班级为它如下:麻烦了Android openGL的if语句第二
public class GLCubeEx extends Activity {
GLSurfaceView ourSurface;
GLCubeEx This = this;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ourSurface = new GLSurfaceView(this);
ourSurface.setRenderer(new GLCubeRenderer());
setContentView(ourSurface);
}
public boolean onTouchEvent(MotionEvent event) {
float touchedX = 0;
float touchedY = 0;
Button btn = new Button(this);
LinearLayout.LayoutParams paramsd = new LinearLayout.LayoutParams
(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
paramsd.height = 60;
paramsd.width = 120;
btn.setLayoutParams(paramsd);
addContentView(btn, paramsd);
if (event.getAction() == MotionEvent.ACTION_DOWN){
GLCubeRenderer.xAngle = (touchedX - event.getX())/2f;
GLCubeRenderer.yAngle = (touchedY - event.getY())/2f;
} else if (event.getAction() == MotionEvent.ACTION_MOVE){
GLCubeRenderer.xAngle = (touchedX - event.getX())/2f;
GLCubeRenderer.yAngle = (touchedY - event.getY())/2f;
touchedX = event.getX();
touchedY = event.getY();
}
**EDIT here, thaks to Laurence pointing out**
if(GLCubeRenderer.xAngle > -118f && GLCubeRenderer.xAngle < -65f){
btn.setText("working");
}
String s = Float.toString(GLCubeRenderer.xAngle);
btn.setText(s);
return true;
}
public void onPause() {
super.onPause();
ourSurface.onPause();
}
public void onResume() {
super.onResume();
ourSurface.onResume();
}
}
我遇到的麻烦的是,if语句在我的运动事件,检查是否变量xAngle (这是刷卡sceen和使用TTO旋转立方体时创建的浮动)是没有被触发在两个值之间,BTN是在应用程序的按钮,显示xAngle的值,我不能ee值为什么它没有被引发了我还没有看到的任何想法或明显的解决方案?
您是否尝试过在一个调试器中运行这个,甚至记录一些val的你看看发生了什么? – 2013-02-21 22:33:22
Yer我正在记录这些值,并且用断点运行了eclipse调试工具,但我仍然无法触发它。 – September 2013-02-21 22:39:29