support du tactile
This commit is contained in:
@@ -3,9 +3,12 @@ package com.iutlaval.myapplication.Game;
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.iutlaval.myapplication.Game.Cards.Card;
|
||||
import com.iutlaval.myapplication.Game.Cards.DemoCard;
|
||||
import com.iutlaval.myapplication.GameActivity;
|
||||
import com.iutlaval.myapplication.MainActivity;
|
||||
import com.iutlaval.myapplication.R;
|
||||
import com.iutlaval.myapplication.Video.Drawables.Drawable;
|
||||
import com.iutlaval.myapplication.Video.Drawables.DrawableCard;
|
||||
@@ -16,6 +19,7 @@ public class GameLogicThread extends Thread{
|
||||
private Context cont;
|
||||
private Renderer renderer;
|
||||
private boolean ready;
|
||||
private TouchHandler touch;
|
||||
|
||||
public GameLogicThread(Context cont, Renderer renderer)
|
||||
{
|
||||
@@ -23,6 +27,7 @@ public class GameLogicThread extends Thread{
|
||||
this.cont = cont;
|
||||
this.renderer = renderer;
|
||||
renderer.setEngine(this);
|
||||
touch = new TouchHandler(renderer);
|
||||
}
|
||||
|
||||
private float i=0;
|
||||
@@ -89,5 +94,12 @@ public class GameLogicThread extends Thread{
|
||||
return ready;
|
||||
}
|
||||
|
||||
//placeOnBoard()
|
||||
|
||||
/**
|
||||
* relais l'evenement directement au touch Handler
|
||||
* @param event
|
||||
*/
|
||||
public void onTouchEvent(MotionEvent event) {
|
||||
if(isReady())touch.onTouchEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.iutlaval.myapplication.Game;
|
||||
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.iutlaval.myapplication.GameActivity;
|
||||
import com.iutlaval.myapplication.Video.Drawables.DrawableCard;
|
||||
import com.iutlaval.myapplication.Video.Renderer;
|
||||
|
||||
public class TouchHandler {
|
||||
|
||||
//TODO mettre sa dans une classe isolé
|
||||
private float deltaX = 0;
|
||||
private float deltaY = 0;
|
||||
private DrawableCard moveEventCard = null;
|
||||
private Renderer renderer;
|
||||
|
||||
public TouchHandler(Renderer renderer)
|
||||
{
|
||||
this.renderer = renderer;
|
||||
}
|
||||
|
||||
|
||||
public void onTouchEvent(MotionEvent event){
|
||||
|
||||
if(event.getPointerCount() <= 1)
|
||||
{
|
||||
float unscalled_X = event.getX() / GameActivity.screenWidth * 100;
|
||||
float unscalled_Y = event.getY() / GameActivity.screenHeight * 100;
|
||||
|
||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
moveEventCard = renderer.getCardOn(unscalled_X, unscalled_Y);
|
||||
if(moveEventCard != null) {
|
||||
deltaY = unscalled_Y - moveEventCard.getY();
|
||||
deltaX = unscalled_X - moveEventCard.getX();
|
||||
}
|
||||
} else if (event.getAction() == MotionEvent.ACTION_UP) {
|
||||
moveEventCard = null;
|
||||
deltaY = 0;
|
||||
deltaX = 0;
|
||||
} else if (moveEventCard != null) {
|
||||
moveEventCard.setCoordinates(unscalled_X - deltaX, unscalled_Y - deltaY);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user