스테이지 클래스
public class Stage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
//
}
//
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
_Controller.ControllKeyDown(keyCode, event);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
_Controller.ControllKeyUp(keyCode, event);
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onTouchEvent(MotionEvent event){
_Controller.ControllTouch(event);
return true;
}
//
}
컨트롤러 클래스
public class Controller extends Activity {
public Controller(){
}
public void ControllKeyDown(int keyCode,KeyEvent event){
MoveLocation = new Locating(1);
//
}
}
public void ControllKeyUp(int keyCode,KeyEvent event){
MoveLocation = new Locating(1);
//
}
}
public void ControllTouch(MotionEvent event){
MoveLocation = new Locating(1);
if(MoveLocation.GetTop(0) <= event.getY()){
if(MoveLocation.GetLeft(0) > event.getX()){
switch(event.getAction()){
case MotionEvent.ACTION_DOWN :
MoveLocation.CharMoveLeft(_Int.Char_pace,_Int.Scrn_restrictedL);
break;
case MotionEvent.ACTION_MOVE :
MoveLocation.CharMoveLeft(_Int.Char_pace,_Int.Scrn_restrictedL);
break;
case MotionEvent.ACTION_UP :
MoveLocation.CharMoveLeft(0,_Int.Scrn_restrictedL);
break;
}
}else if(MoveLocation.GetRight(0) < event.getX()){
switch(event.getAction()){
case MotionEvent.ACTION_DOWN :
MoveLocation.CharMoveRight(_Int.Char_pace,_Int.Scrn_restrictedR);
break;
case MotionEvent.ACTION_MOVE :
MoveLocation.CharMoveRight(_Int.Char_pace,_Int.Scrn_restrictedR);
break;
case MotionEvent.ACTION_UP :
MoveLocation.CharMoveRight(0,_Int.Scrn_restrictedR);
break;
}
}
}
}
//
}
대충 소스는 이렇구요 스테이지 클래스에서 키이벤트 처리를 다하기에는 소스가 복잡해서 따로 클래스는 만들어서 작업한건대요
어쨋든 키보드키나 마우스로 어떤 이미지를 왼쪽 오른쪽으로 이동하는 소스에용
키보드는 문제가 없는대 마우스로 이동할려할때
[ img ]
대충 화면이 이렇다하면 img 왼쪽이나 오른쪽을 클릭하는동안
img가 클릭한곳까지 이동하게 하는거에요
물론 한번에 움직이는게 아니라 일정한 간격(_Int.Char_pace)으로 이동하는대요.
이게 이동할려고 한번 클릭하고 있으면 그 간격만 움직이고 끝이네요. 계속 클릭질을 해대야 이동을하고;
키보드로는 왼쪽키나, 오른쪽키만 계속 누르고 있으면 이동하는대 마우스로는 무언가 다른 택틱인지는 잘;
리턴쪽이 문제인지;
제가 자바초보라 ㅠ_ㅠ 가르켜 주시면 감사하겠습니다.
touch 리스너에서 down, move, up 에 대해서 한번식 처리를 해주셨네요.
누르고 있는동안 계속 움직이기를 원하신다면, down 에서 이동시키는 runnable 를 실행해 주시고, up 에서
runnable 를 중지시키는 방법을 써야할듯 합니다. ui 에 영향을 주려면 runnable 를 만들어서 runOnUiThread 메소드에
runnable 를 만들어서 전달하시면 됩니다.