java - 使用 touchDragged (libGDX) 上下更改音量

标签 java libgdx

在此图像中enter image description here如何使用 touchDragged 拖动此 enter image description here仅在 x 轴上??

这是我执行此操作的代码:

iBtnDrag = new Image(tBtnDrag);
iBtnDrag.addListener(new ClickListener() {

        @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            return true;
        }

        @Override
        public void touchDragged(InputEvent event, float x, float y, int pointer) {
            iBtnDrag.setPosition(x, 448, Align.center);
        }
});

最佳答案

你应该创建 DragListener

    ...

    float startX;

    DragListener listener = new DragListener()
    {
        public void dragStart(InputEvent event, float x, float y, int pointer)
        {
            startX = x;
        }

        public void drag(InputEvent event, float x, float y, int pointer)
        {   
            //x, y are delta from starting point so
            iBtnDrag.setPosition(startX + x, 448, Align.center);
        }

        public void dragStop(InputEvent event, float x, float y, int pointer)
        {
            //when stopping drag
        }
    };
<小时/>

但是更好的方法是创建 Slider 。要实现这一目标,最好是使用 skin mechanism

你的皮肤文件应该像这样:

    com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: 
    {
        default-horizontal: { background: greenBackground, disabledBackground: sliderDisabled, knob: woodenKnob, disabledKnob: transparent },
    },

然后您将创建 slider ,例如

    music= new Slider(minValue, maxValue, stepSize, isVertical, skin);
    music.setWidth( musicSiderWidth );

Slider允许你通过调用来获取它的值

    music.getValue();

其实很方便

关于java - 使用 touchDragged (libGDX) 上下更改音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802502/

相关文章:

java - 无法上传超过 10 秒的视频文件 - 无法对未保存的 ParseFile 进行编码

java - 从 Java 应用程序启动 Zookeeper 和 Kafka 服务器

Java代码速度提升

android - LibGDX SpriteBatch 多纹理可能吗?

java - 如何调整 Hibernate 查询

java - 更改 Java Swing 应用程序上的标题

当相机坐标与窗口坐标不匹配时,Java libGDX将不会绘制 Sprite

java - 从静态类中引用样式、字体和图像是否不好?

java - LibGDX - 如何添加背景图片

android - 使用 SpriteBatch 渲染图像时 ShapeRenderer 颜色停止工作