Androidゲーム開発学習(6)--VIewタッチパネルMOVEとUPイベントの処理


イベント処理を設定した後、自分でテストしたところ、クリックしても効果がないことがわかりました.
現在操作するビューを設定していないので、フォーカスが得られないので、コンストラクション関数に追加します.
 
setFocusable(true);
 
もしあなたがタッチスクリーンのイベントを処理しているならば、あなたはまたあなたが自分で実現したこのViewがDOWNのイベントを押すことだけをサポートしていることを発見して、ドラッグとUPのイベントを知らないで、
VIewのコンストラクション関数にMOVEとUPをサポートするイベントを追加する必要があります
 
setClickable(true);
 
onTouchEventでreturn trueを返すこともできます.
 
 
デフォルトで実装する
 
 
@Override
public boolean onTouchEvent(MotionEvent event) {
    Log.i("    ", "  :"+event.getAction());
    return super.onTouchEvent(event);
}
 
 
解決策1
 
 
public class GameSurfaceView extends SurfaceView implements Runnable ,SurfaceHolder.Callback{

	public GameSurfaceView(Context context) {
		super(context);
		setFocusable(true);
		//             
		setClickable(true);
	}
	
	@Override
	public boolean onTouchEvent(MotionEvent event) {

		
		return super.onTouchEvent(event);
	}
}
 
 
 
解決策2
 
public class GameSurfaceView extends SurfaceView implements Runnable ,SurfaceHolder.Callback{

	public GameSurfaceView(Context context) {
		super(context);
	}
	
	@Override
	public boolean onTouchEvent(MotionEvent event) {

		
		return true;
	}
}