나는 게임에서 일해 왔고 나는 컨트롤러를 만들려고 노력하고있다. 너무 복잡하고이 작업을 수행하기 위해 2 개의 입력 (손가락)을 추적해야한다 : 1 발사 버튼과 이동 키. (위, 아래, 손가락 2가 다운 손가락 하나가 다운 손가락 1은 2이다 생각하고 2 손가락은 1어떻게 MotionEvent.ACTION_POINTER_INDEX_SHIFT를 사용합니까?
D/Controlls(18849): Action Down 1
D/Controlls(18849): Coordinates 267.7908 415.24274
D/Controlls(18849): Action Pointer Down 2
D/Controlls(18849): Coordinates 281.11423 417.23993
D/Controlls(18849): Action Pointer UP 1
D/Controlls(18849): Coordinates 272.7869 419.23718
D/Controlls(18849): Action UP 2
D/Controlls(18849): Coordinates 1148.103 439.20947
이가이다의 생각을 상승 상승 : 왼쪽, 오른쪽)
이 문제입니다 2 개의 입력을 처리하는 OnTouchEvent 코드 :
@Override
public boolean onTouchEvent(MotionEvent event) {
int index = event.getActionIndex();
int pointerId = event.getPointerId(index);
int action = event.getActionMasked();
int oldX, oldY;
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
{
hero.moveControlls((int)event.getX(), (int)event.getY());
Log.d("Controlls", "Action Down "+ pointerId);
Log.d("Controlls", "Coordinates "+ event.getX() + " "+ event.getY());
break;
}
case MotionEvent.ACTION_UP:
{
hero.setScreenTouching(false);
Log.d("Controlls", "Action UP "+ pointerId);
Log.d("Controlls", "Coordinates "+ event.getX() + " "+ event.getY());
break;
}
case MotionEvent.ACTION_POINTER_DOWN:
{
Log.d("Controlls", "Action Pointer Down "+ pointerId);
Log.d("Controlls", "Coordinates "+ event.getX() + " "+ event.getY());
break;
}
case MotionEvent.ACTION_POINTER_UP:
{
Log.d("Controlls", "Action Pointer UP "+ pointerId);
Log.d("Controlls", "Coordinates "+ event.getX() + " "+ event.getY());
break;
}
}
return true;
}
이제 저는 예제를 들여다 보았지만 이해할 수 없었습니다. 나는 API에서 MotionEvent를 찾았고 사용법을 모르는 $ ACTION_POINTER_INDEX_SHIFT $를 사용한다고한다. 이해하기 쉽도록 예제가 없기 때문이다. 이 작업을 수행하는 방법에 대한 도움이 필요하십니까?
나는 당신이 말하는 것을 얻지 만 여전히 구현할 수 없다. –
귀하의 switch 문을 수정했습니다. – Devunwired
비슷한 문제가 있습니다. MotionEvent.ACTION_POINTER_INDEX_MASK (이 주제의 모든 예에서 나타납니다)로 조치를 "ANDing"하고 교대의 목적은 무엇인지 설명해 주시겠습니까? 나는 또한이 가면이 무엇인지에 대해 명확하지 않으며 문서는 비밀 스럽다. 나는 그것과 감상을 더 명확하게하기 위해 크게 감사 할 것이다. 감사! – Rookatu