2013-04-24 4 views
0

별도의 마우스를 사용할 때 촬영을 처리하는 게임용 MouseListener가 응답하지 않지만 내 랩톱에서 마우스를 사용할 때 응답하지 않습니다. 내 플레이어 클래스에서의 mouseClicked 방법은 다음과 같습니다 MouseListener 응답 없음

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 %.

+0

간헐적 사실은 마우스 자체가 잘못된 일도을 나타냅니다. 디버거 중단 점 또는 디버그 로그 문을 마우스 수신기에 넣고 중단 점이 발생했는지 확인하려고합니다. – nikkatsa

답변

1

나는 왼쪽 마우스 버튼을 누를 때마다 플레이어가 촬영을 시작하지 않았지만 80 %는 더 좋아한다.

mouseClicked() 대신 을 사용해보십시오. mouseClicked 이벤트는 mousePressed() 및 mouseReleased() 이벤트가 동일한 위치에서 생성 될 때만 생성됩니다. mouseClicked 이벤트가 생성되지 않도록 마우스를 한 픽셀 또는 두 개 움직일 수도 있습니다. 또한

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

대신 위의 사용을 쉽게 읽을 수있는 다음의 :

if (SwingUtilities.isLeftMouseButton(e))