I am developing an Arduino project that needs an android to be controlled, I have the communication and Arduino part done, but I need an app that has the screen divided in two parts, the left part reports the X, Y position of one fingerlike (ID1 X1, Y1) and the right part reports the ID2 X2, Y2.
I need four variables like X1, Y1, X2, Y2.
I actually have this code but I haven't made it work as I want. I've read a lot, I've seen a lot of videos but no resource gives me the information for what I want to do.
Thank you so much for your time.
Best Regards
I need four variables like X1, Y1, X2, Y2.
I actually have this code but I haven't made it work as I want. I've read a lot, I've seen a lot of videos but no resource gives me the information for what I want to do.
Thank you so much for your time.
Best Regards
Code:
public boolean onTouch(View v, MotionEvent event){
//needs multitouch
if(checkInGame()){
if(event.getY() < this.getMeasuredHeight() / 2){
pointerId1 = event.getPointerId(event.getActionIndex());
}else{
pointerId2 = event.getPointerId(event.getActionIndex());
}
switch(event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_MOVE:{
if(event.getPointerId(event.getActionIndex()) == pointerId1){
Log.d("Touch","Move1");
int pointerIndex = event.getActionIndex();
int moveX = 0;
int moveY = 0;
moveX = (int) event.getX(pointerIndex) - sX;
moveY = (int) event.getY(pointerIndex) - sY;
ship1.setLoc(moveX, moveY);
sX = sX + moveX;
sY = sY + moveY;
}else if(event.getPointerId(event.getActionIndex()) == pointerId2){
int pointerIndex = event.getActionIndex();
Log.d("Touch","Move2");
int moveX = 0;
int moveY = 0;
moveX = (int) event.getX(pointerIndex) - sX2;
moveY = (int) event.getY(pointerIndex) - sY2;
ship2.setLoc(moveX, moveY);
sX2 = sX2 + moveX;
sY2 = sY2 + moveY;
}
return true;
}
case MotionEvent.ACTION_DOWN: {
if(event.getPointerId(event.getActionIndex()) == pointerId1){
Log.d("Touch","Top1");
int pointerIndex = event.getActionIndex();
sX = (int) event.getX(pointerIndex);
sY = (int) event.getY(pointerIndex);
}else if(event.getPointerId(event.getActionIndex()) == pointerId2){
int pointerIndex = event.getActionIndex();
Log.d("Touch","Bottom1");
sX2 = (int) event.getX(pointerIndex);
sY2 = (int) event.getY(pointerIndex);
}
return true;
}
case MotionEvent.ACTION_POINTER_DOWN:{
if(event.getPointerId(event.getActionIndex()) == pointerId1){
Log.d("Touch","Top2");
int pointerIndex = event.getActionIndex();
sX = (int) event.getX(pointerIndex);
sY = (int) event.getY(pointerIndex);
}else if(event.getPointerId(event.getActionIndex()) == pointerId2){
int pointerIndex = event.getActionIndex();
Log.d("Touch","Bottom2");
sX2 = (int) event.getX(pointerIndex);
sY2 = (int) event.getY(pointerIndex);
}
return true;
}
}**`strong text`**