因此,我最近一直在滥用Google的答案,但是找不到答案,而且我的头开始发痛。我最近在Google Play商店发布了我的第二款游戏,直到现在我才得到反馈,人们并不对按钮按下机制太着迷(与第一款游戏相同)。如果您愿意尝试,可以在here上找到我的游戏,很遗憾,我在其他地方没有HTML版本。

制作游戏时,我使用了LibGDX,对于UI,我使用了Scene2D附带的LibGDX。我的游戏要求您按下绿色的“错误”按钮得到一个分数(“错误”按钮随机循环),您被迫与计时器比赛,因此,您显然想更快地得分更高(想想钢琴瓷砖)。

现在,针对当前的问题,我的新游戏中的一种游戏模式称为“禅”,两个按钮,一个给你1分,另外2分。我遇到的问题是,如果同时按住两个“ 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的精灵)?任何帮助将不胜感激。

提前致谢,

电视

最佳答案

不要为此使用ChangeListener,请使用ClickListener(button.addClickListener(new ClickListener ...))并在touchUp事件上处理您的进程,ChangeListener将处理按钮上的任何内容是否发生更改,并且不是处理按钮的好方法发布事件。

关于java - LibGDX Scene2D对多点触摸功能奇怪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35293063/

10-09 01:30