У меня есть кнопка платформы игрового экрана, и я пытаюсь сделать так, чтобы пользователь нажимал ее один раз, щелкал где-то на экране, чтобы нарисовать одну платформу, а затем, если они щелкнули по экрану опять же ничего не произойдет.libGDX Multiplexer - удаление процессора
Прямо сейчас, прежде чем нажимать кнопку платформы, ничего не происходит, что я хочу. Когда я нажимаю кнопку платформы, пользователь может щелкнуть по экрану, чтобы нарисовать платформу, но после нажатия кнопки платформы один раз, каждый раз, когда они нажимают на экран, платформа набирается, поэтому у меня возникают проблемы с тем, чтобы они могли нарисуйте один. Я думал, что использование removeProcessor() сработало бы, но это не так.
InputController inputProcessor;
InputMultiplexer multiplexer;
public GameScreen(FallDown game) {
this.game = game;
GAMESCREEN_STATE = WORLD_STATE_READY;
this.cam = new OrthographicCamera(FRUSTUM_WIDTH, FRUSTUM_HEIGHT);
this.cam.position.set(FRUSTUM_WIDTH/2, FRUSTUM_HEIGHT/2, 0);
this.cam.setToOrtho(false, FRUSTUM_WIDTH, FRUSTUM_HEIGHT);
batch = new SpriteBatch();
world = new World();
renderer = new WorldRenderer(batch, world);
cam.position.set(FRUSTUM_WIDTH/2, 105, 0);
inputProcessor = new InputController(game, world, cam);
multiplexer = new InputMultiplexer();
}
Затем, в конце моего метода визуализации у меня есть
multiplexer.addProcessor(stage);
Gdx.input.setInputProcessor(multiplexer);
Это слушатели для моих кнопок, и я просто с помощью кнопки сброса в качестве альтернативного способа, чтобы остановить пользователя от чертежные платформы.
reset_button.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
multiplexer.removeProcessor(inputProcessor);
return true;
}
});
platform_button.addListener(new InputListener() {
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
if (GAMESCREEN_STATE != WORLD_STATE_RUNNING) {
multiplexer.addProcessor(new InputController(game, world, cam));
}
return true;
}
});
Вау, я не знаю, почему я об этом не думал. Теперь я чувствую себя глупо. огромное спасибо – Jon