Mouse.next()的多个类

时间:2016-07-06 21:19:02

标签: java lwjgl

正如标题已经显示我对“Mouse.next()”函数有疑问。

我正在编程我自己的按钮,为此我必须检查,如果按下了鼠标左键。我想,我可以这样做:

while(Mouse.next()) {
    if(Mouse.getEventButtonState() && Mouse.getEventButton() == 0) {
        // some code..
    }
}

如果我只有一个按钮实例,这也有效。但是如果我添加另一个实例,则永远不会为第二个(最后创建的)按钮调用while循环...

有人有任何想法,为什么会发生这种情况?... 以及这些功能(在互联网上找到它们)Mouse.getEventButtonState()Mouse.getEventButton() == 0Mouse.isButtonDown(0)

鼠标来自org.lwjgl.input.Mouse

对于另一个实例,我的意思是:MyButton button = new MyButton();

修改 我的问题是:如何让Mouse.next()使用周围类的多个实例...

2 个答案:

答案 0 :(得分:1)

因为鼠标是单身人士。只要它是Singleton呼叫next将消耗Event。你不能两次消耗同一个事件!当第一个对象调用next()时它会消耗它,而当第二个对象调用next()时,没有第二个单击要消耗。

答案 1 :(得分:0)

问题是getEventButton()根据按下的按钮返回不同的数字。你应该做的是:

while (Mouse.next()) {
    if (Mouse.getEventButtonState()) {
        int buttonId = Mouse.getEventButton();
        switch (buttonId) {
            case -1: break; // no button was clicked
            case 0:
                // code for first button
                break;
            case 1:
                // code for second button
                break;
        }
    }
}