onTouchEventを利用した自機の移動

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
bison

onTouchEventを利用した自機の移動

#1

投稿記事 by bison » 9年前

初めて質問させていただきます。現在Javaでhttp://dixq.net/Android/index.phpのイライラ棒を改造して自機をセンサーではなくタッチで移動させようとしています。一応動くには動くのですが動作が自分の望むものにはなってくれません。画面をスライドしたらそれについてくるようにしたいのですが離れたところをスライドするとワープしてしまいます。どうしたらよいでしょうか。また、リトライしたときに取得した座標が引き継がれてしまいます。初期化して最初のスタート位置からリスタートしたいのですがやり方がわかりません。アドバイスお願いします。

コード:

MainActivity
@Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                _x = event.getX();
                _y = event.getY();

                break;

            case MotionEvent.ACTION_MOVE:
                _x = event.getX();
                _y = event.getY();

                break;

            case MotionEvent.ACTION_CANCEL:

                _x = 0;
                _y = 0;

                break;

        }

コード:

Player
    public Player(){
        _cir = new Circle( 500, 30, SIZE );      //(240,0)の位置にSIZEの大きさの円を作る
        _paint.setColor(Color.BLUE);            //色を青に設定
        _paint.setAntiAlias(true);                      //エイリアスをオン
    }

    // 移動ベクトルの向いている方に動かす
    private void Move() {
        float x = MainActivity.getX();
        float y = MainActivity.getY();
        _cir._x = x;
        _cir._y = y;
    }


    @Override
    public boolean onUpdate(){
        setVec();       //移動ベクトルをセットする
        Move();         //移動ベクトルが向いている方に動かす
        return true;
    }

hide

Re: onTouchEventを利用した自機の移動

#2

投稿記事 by hide » 9年前

PlayerクラスのMoveの中にある

コード:

float x = MainActivity.getX();
float y = MainActivity.getY();
が何やってるかわかっていますか?

bison

Re: onTouchEventを利用した自機の移動

#3

投稿記事 by bison » 9年前

返信ありがとうございます。float x =MainActivity.getX();でタッチしたx座標をxに入れてそれを自機のx座標に入れてしまうからワープしてしまうということはわかっています。言葉足らずですみません。

hide

Re: onTouchEventを利用した自機の移動

#4

投稿記事 by hide » 9年前

返信ありがとうございます。float x =MainActivity.getX();でタッチしたx座標をxに入れてそれを自機のx座標に入れてしまうからワープしてしまうということはわかっています。言葉足らずですみません。
もともとあのイライラ棒アプリのAcSensorのgetXをMainActivityに移したものだと思うのですが、
AcSensorはシングルトンだったりして、移植の際にその辺りどのように調整したのかとか
色々と説明したいただかなければならない部分があるはずなんですが。。
よくわからないまま進めていらっしゃるのでしょうか?

閉鎖

“C言語何でも質問掲示板” へ戻る