有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java LibGDX:按下触摸屏时的操作和释放触摸屏时的操作

我在Android Studio的libGDX上的代码有问题我试图让一个对象在按下屏幕时执行一个动作。如果我放手,前一个动作应该中止,第二个动作应该开始。当我再次按下屏幕时,第二个动作应该会再次停止,并在我按住的同时启动第一个动作

不幸的是,我不知道该怎么做,不幸的是,互联网上也没有关于它的确切信息。 这也意味着我没有代码,可以显示为辅助位置

如果有人能找到解决方案,或能帮助我,我将非常高兴。:)


共 (3) 个答案

  1. # 1 楼答案

    你可以这样做:

    view.setOnTouchListener(new View.OnTouchListener() {        
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    // PRESSED
                    return true; // if you want to handle the touch event
                case MotionEvent.ACTION_UP:
                    // RELEASED
                    return true; // if you want to handle the touch event
            }
            return false;
        }
    });
    

    如果有帮助,请告诉我

  2. # 2 楼答案

    我会使用一个输入监听器,它有一个叫做触摸的布尔值。然后在touchDown事件中将触摸设置为true。在touchUp事件的输入侦听器中,再次将触摸设置为false

    public class MyController  implements InputProcessor {
        @Override
        public boolean touchUp(int screenX, int screenY, int pointer, int button) {
             touching = false;
        }
    
        @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
             touching = true;
        }
        //.. more methods etc
    
    }
    

    在应用程序中创建此MyController并将其设置为inputListsner,方法是:

    controller = new MyController();
    Gdx.input.setInputProcessor(controller);
    

    现在,您可以检测用户何时触摸,并使用以下功能执行所需的任何操作:

    if(controller.touching){
        //user is touching do touching action
    }else{
        // user isn't touching do the non touchin action
    }
    
  3. # 3 楼答案

    可以通过这种方式在渲染方法中使用:

    if(Gdx.input.isTouched()){
    
        //whether the screen is currently touched.
    }else{
    
    }
    

    或者

    1. 您可以在Gdx.input.setInputProcessor(..)

    2. 然后重写该接口的touchDown(..)touchUp(...)方法,

    3. 根据您的需求选择flag或其他技术