我试图用Android上的Gles做一个简单的游戏。
我已经搜索了很多解决方案,但我找不到任何人提到如何在GLES中实现ontouchevent。
在这里我是如何实现它到目前为止...我知道这是一个愚蠢的方式来做到这一点:D但这只是我可以在没有攻击的情况下设置positionx变量的方式
我的渲染器类的简短摘要......
public class GLmain implements Renderer {
public float mX,mY;
public boolean clicked;
public GLmain()
{
clicked=false;
}
public void onDrawFrame(GL10 gl) {
if(clicked)
{
positionx=mX;
positiony=mY;
clicked=false
}
}
}
in和Activity class
public class Alpha extends Activity {
private GLSurfaceView glSurface;
public float mousex,mousey;
public GLmain glrend=new GLmain();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
glSurface = new GLSurfaceView(this);
glSurface.setRenderer(glrend);
setContentView(glSurface);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
glrend.clicked=true;
glrend.mX=event.getX();
glrend.mY=event.getY();
return true;
}}
答案 0 :(得分:1)
这不是一个愚蠢的方式!您无法直接调用渲染器,因为它位于不同的线程上,因此您需要在需要时对信息进行渲染轮询。