6

私は Android でゲームをプレイしており、ボタンが押されたときにアニメーション化されたスプライトを移動する関数 MoveCharacter (int 方向) を持っています。

たとえば、ユーザーが上に押すと、次のコードがあります。

 mControls.UpButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mLevel.mCharAnimation.FrameUp();
            }           
        });

ただし、ユーザーがボタンを押している限り、キャラクターを動かし続けたいと思います。驚いたことに、Android でこれを行う方法がわかりませんでした。ある種の onButtonDownLister はありますか?

4

4 に答える 4

22

OnTouchListenerを使用して、ダウン、アップ、およびその他の状態に個別のアクションを持たせる必要があります。

mControls.UpButton.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch(event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            // Do something
            return true;
        case MotionEvent.ACTION_UP:
            // No longer down
            return true;
        }
        return false;
    }
});
于 2012-11-16T01:54:54.400 に答える
0

OnTouchListener代わりに使用できます

mControls.UpButton.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                switch (event.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:
                    mLevel.mCharAnimation.FrameUp();
                    break;
                case MotionEvent.ACTION_UP:
                    // User released the button, do your stuff here
                    break;
                }
                return false;

            }           
        });
于 2012-11-16T01:57:35.483 に答える
0

onTouchListener()が必要です。基本的に、これにより、オブジェクトがいつ触れられたか、ユーザーがどのように指を動かしているかを確認し、いつ離したかを知ることができます。

于 2012-11-16T01:55:16.953 に答える