簡単なブレイクアウトゲームを作成していて、これまでにボールとプレーヤーを作成しました。タッチした位置にボールが動くようにしましたが、スワイプした方向に動かしたいです。のように、プレーヤーは私の指と一緒に動きます。MainActivityにあるコードは次のとおりです。
package com.example.breakout;
import android.os.Bundle;
import android.app.Activity;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class MainActivity extends Activity implements OnTouchListener, OnGestureListener{
BreakoutView bv;
GestureDetector gs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bv = new BreakoutView(this);
setContentView(bv);
bv.setOnTouchListener(this);
gs = new GestureDetector(MainActivity.this, this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
/*if(arg1.getY()<600){
bv.p1.x = arg1.getX();
bv.p1.y = 600;
}*/
return false;
}
@Override
public boolean onTouchEvent(MotionEvent me){
return gs.onTouchEvent(me);
}
@Override
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
/*if(e2.getX()>e1.getX()){
//Move right
bv.p1.x = e2.getX();
}*/
return false;
}
@Override
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
}
したがって、私が試した2つの方法は、onTouchとonFlingの方法です。onTouchは、私が触れた場所でプレーヤーを「テレポート」しますが、これは私が望んでいることではありません。onFlingは、スワイプが完了したときにのみプレーヤーを移動するため、どちらも機能しません。私の質問は、指をスワイプするときにどうやって動かすことができるかということです。onDownを使用しますか?どんな助けでも大歓迎です。
ありがとう!