我的游戏中处理射击的MouseListener在使用单独的鼠标时没有反应,但在使用笔记本电脑上的内置鼠标时没有反应。在我的player类中,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%的时间。
发布于 2013-04-25 02:11:08
我注意到玩家并不是每次我按下鼠标左键就开始射击的,但更多的是在80%的时间里。
尝试使用mousePressed()而不是mouseClicked()。只有在同一位置生成mousePressed()和mouseReleased()事件时,才会生成mouseClicked事件。也许您将鼠标移动了一两个像素,这样就不会生成mouseClicked事件。
if(e.getButton() == MouseEvent.BUTTON1)此外,请使用以下更易于阅读的代码来代替上面的代码:
if (SwingUtilities.isLeftMouseButton(e))https://stackoverflow.com/questions/16198386
复制相似问题