在此图像中如何使用 touchDragged
拖动此 仅在 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/