2013-02-21 59 views
0

我已经创造了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值为什么它没有被引发了我还没有看到的任何想法或明显的解决方案?

+0

您是否尝试过在一个调试器中运行这个,甚至记录一些val的你看看发生了什么? – 2013-02-21 22:33:22

+0

Yer我正在记录这些值,并且用断点运行了eclipse调试工具,但我仍然无法触发它。 – September 2013-02-21 22:39:29

回答

0

这是不可能的:

GLCubeRenderer.xAngle < -118f && GLCubeRenderer.xAngle > -65f 

你大概的意思是:

GLCubeRenderer.xAngle > -118f && GLCubeRenderer.xAngle < -65f 
+0

没错,但它仍然没有解决我的问题,这是奇怪的 – September 2013-02-21 22:55:38

0

的触摸每个周期设定按钮的角度文字,你是如何,如果检查你的if语句执行,因为你设置的文本工作的戈纳之后之后将其设置为角度,林不知道,只是一些在这里输入

+0

我相信它设置按钮的文本时,如果我的if语句的参数范围内旋转立方体,离开它,我不应该是困难,但这是一个很好的观点,我会改变它来记录一些字符串数据。 – September 2013-02-21 23:54:40

+0

我试过了,它正在工作!只是onclickListener按钮不是因为它在onTouch事件中,所以我需要触摸多维数据集以及按下按钮? – September 2013-02-21 23:57:52

+0

了您的应用程序的人,让你想怎么 – JRowan 2013-02-22 00:06:44