0

我的游戏处理射击的 MouseListener 在使用单独的鼠标时没有响应,但在我的笔记本电脑上使用内置鼠标时没有响应。在我的播放器类中,mouseClicked 方法如下所示:

public void mouseClicked(MouseEvent e){
    if(e.getButton() == MouseEvent.BUTTON1){
        fire();
    }
}

在扩展 JPanel 的单独类中,我像这样实现 MouseListener:

addMouseListener(new MouseAdapter(){
        public void mouseClicked(MouseEvent e){
            player.mouseClicked(e);
        }
    });

我一直使用我的内置鼠标来编码和测试游戏,每次单击鼠标左键时,玩家都会开始射击,但现在当我想尝试用鼠标玩游戏时,我注意到玩家没有每次我按下鼠标左键时都开始拍摄,但更多的是 80% 的时间。

4

1 回答 1

1

我注意到玩家并没有在每次按下鼠标左键时都开始射击,而是有 80% 的时间。

尝试使用mousePressed()而不是 mouseClicked()。只有在同一位置生成 mousePressed() 和 mouseReleased() 事件时才会生成 mouseClicked 事件。也许您正在将鼠标移动一两个像素,因此不会生成 mouseClicked 事件。

if(e.getButton() == MouseEvent.BUTTON1)

此外,代替上述内容,请使用以下更易于阅读的内容:

if (SwingUtilities.isLeftMouseButton(e))
于 2013-04-24T18:11:07.513 回答