gpt4 book ai didi

java - 关于 LibGdx addListener

转载 作者:行者123 更新时间:2023-11-29 21:12:46 27 4
gpt4 key购买 nike

我相信这个问题之前已经有人问过,但似乎我有点倒霉才找到它。我的问题是如何在过程中间启用按钮/ Actor 的 addListener?例如,在 Activity 屏幕之间的 Assets 加载屏幕上(假设用户完成了阶段 A,加载屏幕是为阶段 B 加载 Assets ),继续按钮只能在所有 Assets 都已加载。如果我将 addListener 添加到 render() 部分,它将根据此 post 创建大量匿名 inputListener .但是,我认为如果将它放在 show() 部分中它不会起作用。我的问题是我应该将此 addListener 放在哪里,以便使 actor 可触摸但不创建那些匿名 inputListener?正确的使用方法是什么?

最佳答案

我建议创建一个 ClickListener 而不是 InputListener 并像往常一样添加它。在 Listener 内部,您检查加载是否完成。如果完成了,你就做你想做的事。如果不是,您将返回而不执行任何操作。

举例说明如何将 ClickListener 添加到应该已经完成​​任务的 TextButton:

    TextButtonStyle style = new TextButtonStyle();
style.font = new BitmapFont();
style.font.setColor(Color.WHITE);

continue= new TextButton("continue",
style);

continue.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
if(manager.update()){ //returns true if the AssetManager is done in case you use an AssetManager
basegameclass.setScreen("menu"); //sets the menu screen
}else{
//not done do nothing or do something else like showing loading not done
}
}
});

要将它添加到不同的 Actor 或按钮,它应该是相似的。请注意添加按钮的 Stage 也是 Inputprocessor。所以确保你像这样添加它 Gdx.input.setInputProcessor(stage);

在这种情况下,我认为您不需要整个 InputListener,只需使用 ClickListener 即可完成这项小任务。 InputListener 为您提供了更多我认为您不需要的方法。它用于检测 touchupstouchdowns 和滑动事件以及我认为你不需要按钮的更多内容。也许对于你拖来拖去的 Actor 。

您在屏幕的构造函数中创建这一切。永远不要在 render 方法中做这样的事情,因为它会在每一帧创建一个新的监听器。 (每秒 60 次!)

关于java - 关于 LibGdx addListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296997/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com