試行錯誤の末、以下の様に書いてみたのですが上手くいきませんでした。 ヒントでも良いので教えてください。
Task.java
public abstract class Task extends Activity{
@Override
public boolean onTouchEvent(MotionEvent event) {
return true;
}
}
public class Player extends Task {
@Override
public boolean onTouchEvent(MotionEvent event) {
return true;
}
}
public class GameManager{
LinkedList<Task> _taskList = new LinkedList<Task>();
GameManager(Context context){
_taskList.add( new Player(context) );
_taskList.add( new Fps() );
}
public boolean onTouchEvent(MotionEvent event) {
for (int i = 0; i < _taskList.size(); i++) {
if (_taskList.get(i).onTouchEvent(event) == false) {
_taskList.remove(i);
i--;
}
}
return true;
}
}
class GameView extends SurfaceView implements SurfaceHolder.Callback, Runnable {
GameManager _gameMgr = new GameManager(getContext());
public MotionEvent event;
Thread _thread;
public GameView(Context context) {
super(context);
getHolder().addCallback(this);
}
@Override
public void run() {
while (_thread!=null) {
_gameMgr.onUpdate();
_gameMgr.onTouchEvent(event);
Draw(getHolder());
}
}