J'essaie de créer un jeu de balle simple en utilisant Canvas
et SurfaceView
. Je veux déplacer la balle autour de l'écran et pour cela j'ai implémenté onTouchEvent()
. Je réussis à déplacer la balle de n'importe où sur l'écran. Mais mon problème est que chaque fois que je touche l'écran et commence à bouger, la balle commence à bouger à partir du point où j'ai touché l'écran.Comment obtenir la position actuelle de l'objet sur la toile dans android
Je veux déplacer la balle de sa position actuelle. Comment puis-je obtenir la position actuelle lorsque je commence à bouger?
Voici mon onTouchEvent()
@Override
public boolean onTouchEvent(MotionEvent event) {
int updated_x = (int) event.getX();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
System.out.println("Action Up");
break;
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
draw(updated_x);
System.out.println("Action Move");
break;
}
return true;
}
Ma méthode draw
est:
private void draw(int updatedValue) {
canvas = surfaceHolder.lockCanvas();
canvas.drawColor(Color.RED);
canvas.drawBitmap(ball.getBitmap(), updatedValue, screenY - ball.getBitmap().getHeight() - 260, paint);
surfaceHolder.unlockCanvasAndPost(canvas);
}
et voici mon Ball.java Classe:
public class Ball {
private int ball_x, ball_y;
private Bitmap bitmap;
private int minX, maxX;
public Ball(Context context, int screenX, int screenY) {
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_ball);
maxX = screenX - bitmap.getHeight();
minX = 0;
}
Vous devez obtenir l'objet '' ball'' courant x et y ... quel est le type de votre objet '' ball''? –
Quelque chose comme '' int previous_x = ballObject.getX(); '' '' previous_x = event.getX() '' –
Je ne comprends pas. Voulez-vous élaborer? – AbhayBohra