我最近学习了OpenGL,并正在使用OpenGL开发游戏。我不知道如何将OnTouch事件实现到图像中并移动图像。我使用了OpenGL文档示例OpenGLES 0.1,但没有什么效果。
我最近学习了OpenGL,并正在使用OpenGL开发游戏。我不知道如何将OnTouch事件实现到图像中并移动图像。我使用了OpenGL文档示例OpenGLES 0.1,但没有什么效果。
@Override
public boolean onTouchEvent(MotionEvent event)
{
mX = (int) event.getX();
mY = (int) event.getY();
return super.onTouchEvent(event);
}
而且,跟随这个教程。它可以帮助你。
默认情况下,您可以使用以下代码在活动中处理触摸事件:
@Override
public boolean onTouch(View v, MotionEvent event) {
final float mouseSensitivity = 0.5f;
if(event.getAction()==MotionEvent.ACTION_DOWN){
startX = event.getX();
startY = event.getY();
} else if(event.getAction()==MotionEvent.ACTION_UP){
startX = 0.0f;
startY = 0.0f;
} else if(event.getAction()==MotionEvent.ACTION_MOVE){
graphicsRenderer.rotate((startY - event.getY()) * mouseSensitivity,(startX - event.getX()) * mouseSensitivity);
startX = event.getX();
startY = event.getY();
}
return true;
}
// Where startX and startY are global int variables;
class ClearGLSurfaceView extends GLSurfaceView {
public ClearGLSurfaceView(Context context) {
super(context);
mRenderer = new ClearRenderer();
setRenderer(mRenderer);
}
public boolean onTouchEvent(final MotionEvent event) {
queueEvent(new Runnable(){
public void run() {
mRenderer.setColor(event.getX() / getWidth(),
event.getY() / getHeight(), 1.0f);
}});
return true;
}
ClearRenderer mRenderer;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
Log.i(TAG,"Action Down");
} else if(event.getAction()==MotionEvent.ACTION_UP){
Log.i(TAG,"Action Up");
} else if(event.getAction()==MotionEvent.ACTION_MOVE){
Log.i(TAG,"Action Move");
}
return true;
}