LibGDX Scene2D表现为奇数到多点触控

时间:2016-02-09 13:15:19

标签: java libgdx scene2d

所以我最近一直在滥用谷歌的答案,但是找不到一个,我的脑袋开始疼痛。我最近在谷歌Play商店发布了我的第二款游戏,直到现在我才得到反馈,人们对按键机制并不太疯狂(与第一款游戏相同的机制)。我的游戏可以找到here如果你想试一试,遗憾的是我没有在其他地方托管的HTML版本。

制作游戏时,我使用了LibGDX,而对于用户界面,我使用了Scene2D附带的LibGDX。我的游戏要求你按下绿色的“bug”按钮来获得一个点(“bug”按钮随机循环),你被迫与一个计时器对战,所以你显然想要更快地获得更高的分数(想钢琴瓷砖)。

现在,针对手头的问题,我的新游戏中的一种游戏模式叫做“Zen”,两个按钮,一个给你1分,另外两个给你。我遇到的问题是,如果你按下“bug”(右下角和左下角)按钮,然后释放其中一个按钮,释放的按钮会触发分数增加,而另一个按钮会重置,就好像它从不首先按下(即使你的手指仍在上面)。这是我的Scene2D按钮的代码(处理内存,目前我的代码附近没有):

// All is initialized correctly, no crashes, here's the part about the listener.
leftBugButton.addListener(new ChangeListener()
{
    @Override
    public void changed(ChangeEvent event, Actor actor)
    {
        // Run code here when button has been released.
    }
}

// And the right hand button's code. Initialization is perfect, no problems.
rightBugButton.addListener(new ChangeListener()
{
    @Override
    public void changed(ChangeEvent event, Actor actor)
    {
        // Run code here when button has been released.
    }
}

回答我的问题,我想要的是,如果按下按钮已经完成(按下然后释放),我不希望其他按钮重置为未按下状态。

我应该使用的任何提示,或者可能是不同的Listener,甚至是为这些按钮转储Scene2D(例如使用带有InputListener的精灵)?任何帮助将不胜感激。

提前致谢,

TV

2 个答案:

答案 0 :(得分:1)

不要使用ChangeListener,使用ClickListener(button.addClickListener(new ClickListener ...))并在touchUp事件上处理您的进程,如果 ANYTHING ,ChangeListener将处理按钮更改并不是处理按钮释放事件的好方法。

答案 1 :(得分:0)

发现我的问题,我按下每个按钮后不断重建Stack,导致奇怪的行为,而是在我的按钮上选择了.setStyle(),这样做效果更好。