Я знаю разницу между setX/Y и setOrigin, и я уверен, что на самом деле правильно использую setOrigin(). Я хочу, чтобы эта кнопка увеличивалась при касании. Прямо сейчас scaleBy(), похоже, масштабируется слева внизу, слегка увеличивая его и перемещая вверх и вправо. Сброс источника или попытка его перемещения вручную с помощью другого действия не имеют видимого эффекта. См. Скриншоты ниже для большей ясности.LibGdx setOrigin() не работает
final Group but = new Group();
//...
//this seems to have no effect
but.setOrigin(but.getWidth()/2, but.getHeight()/2); //center origin for scaling
but.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
//this happens
but.addAction(Actions.scaleBy(.2f, .2f));
//this doesn't
but.addAction(Actions.moveBy(but.getWidth(), but.getHeight()));
return true;
}
//...
});
stage.addActor(but);
Перед прикосновением:
После прикосновения:
Спасибо! Очевидно, что установка размера участников и добавление их в группу не влияет на границы группы (я полагал, что группа автоматически будет иметь границы, равные сумме своих детей) – sam