피아노 어플을 만드려고하는데 멀티터치 구현후 버튼을 누르면 소리가 나게 만들었습니다.
근데 동시에 버튼을 누르면 한번에 나는것이아니라 순차적으로 소리가 나더군요 ..
제가 원하는건 두개의 버튼을 동시에 누를때 동시아 소리가 나는것인데 어떻게 구현해야할지 모르겠습니다.
그리고 코드창 하나 더 만들어졌는데 어떻게 지우는거죠 ?
public boolean onTouchEvent(MotionEvent event)
{
float[] x = new float[10];
float[] y = new float[10];
boolean[] touched = new boolean[10];
int action = event.getAction() & MotionEvent.ACTION_MASK;
int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK);
pointerIndex = pointerIndex >> MotionEvent.ACTION_POINTER_ID_SHIFT;
int pointerId = event.getPointerId(pointerIndex);
switch(action)
{
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_POINTER_DOWN:
touched[pointerId] = true;
x[pointerId] = (int)event.getX(pointerIndex);
y[pointerId] = (int)event.getY(pointerIndex);
Log.e("String","터치:" +event.getPointerCount());
Log.e("터치 충돌","포인트 :"+ x[pointerId]);
for(int Count =0; Count <Piano_Btn_R.size(); Count++)
{
if(Piano_Btn_R.get(Count).contains(x[pointerId],y[pointerId]))
{
Piano_Btn.get(Count).setImageResource(Res_Change("bt_off","drawable",Count));
Pool_Res = mPool.load(Main.this,Res_Change("s","raw",Count),1);
Log.e("터치 충돌","충돌손가락 :"+event.findPointerIndex(pointerId)+"충돌 사각형 :"+Count);
// Log.e("터치 충돌","포인터 카운터 :"+event.getPointerCount());
mPool.play(Pool_Res,1,1,0,0,1);
break;
}
//
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
case MotionEvent.ACTION_CANCEL:
touched[pointerId] = false;
x[pointerId] = (int)event.getX(pointerIndex);
y[pointerId] = (int)event.getY(pointerIndex);
break;
case MotionEvent.ACTION_MOVE:
int pointerCount = event.getPointerCount();
for(int i=0; i<pointerCount; i++)
{
pointerIndex = i;
pointerId = event.getPointerId(pointerIndex);
x[pointerId] = (int)event.getX(pointerIndex);
y[pointerId] = (int)event.getY(pointerIndex);
}
break;
}
return true;
}