1
您究竟如何拦截Android中OpenGL ES游戏的触摸屏事件?另外,如果游戏是3D的,你怎么知道用户是否在背景中触摸了一个物体?谢谢。如何拦截Android OpenGL ES中的触摸屏事件?
您究竟如何拦截Android中OpenGL ES游戏的触摸屏事件?另外,如果游戏是3D的,你怎么知道用户是否在背景中触摸了一个物体?谢谢。如何拦截Android OpenGL ES中的触摸屏事件?
将onTouchEvent(MotionEvent e)覆盖到扩展GlsurfaceView的类中。
@Override public boolean onTouchEvent(MotionEvent e) {
float x = e.getX();
float y = e.getY();
switch (e.getAction()) {
case MotionEvent.ACTION_MOVE:
float dx = x - mPreviousX;
float dy = y - mPreviousY;
mRenderer.mAngleX += dx * TOUCH_SCALE_FACTOR;
mRenderer.mAngleY += dy * TOUCH_SCALE_FACTOR;
requestRender();
}
mPreviousX = x;
mPreviousY = y;
return true;
}
而要知道用户触摸的对象,您应该将触摸事件坐标与对象坐标进行比较。
谢谢。另外,如果用户触摸了物体所在的屏幕,X坐标和Y坐标是相同的,但Z坐标是不同的?就像你可以画一条直线进入屏幕一样,它会与对象相交。 – AnimatedRNG 2011-03-28 15:14:46