2014-12-10 1 views
0

이벤트를 설정할 때 Mouse_Clicked 메인 메뉴로 돌아 가야하지만 마우스를 클릭해도 아무런 반응이 없습니다. 메인 메뉴 인 MENUSTATE으로 가고 싶지만 아무 일도 일어나지 않습니다. 이 프로젝트는 학교 프로젝트이므로 도움이 필요하며 무엇이 잘못되었는지는 알 수 없습니다.Java GameState가 변경되지 않습니다.

package GameState; 

import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics2D; 
import java.awt.event.MouseEvent; 
import main.GamePanel; 

public class HelpState extends GameState { 
    private Color titleColor; 
    private Font titleFont; 

    public HelpState(GameStateManager gameStateManager) { 
     init(); 
    } 

    @Override 
    public void init() { } 

    @Override 
    public void update() { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void draw(Graphics2D g) { 
     g.setColor(titleColor); 
     g.setFont(titleFont); 

     g.clearRect(1, 1, GamePanel.WIDTH, GamePanel.HEIGHT); 
     g.drawString("Move Left: Left Arrow ", 0, 25); 
     g.drawString("Move Right: Right Arrow ", 0, 45); 
     g.drawString("Attack: A Button ", 0, 65); 
     g.drawString("Become Other Wumps: You must have things happened to", 0, 85); 
     g.drawString("you (Eg. Get smashed by a wall). After that you must press ", 0, 95); 
     g.drawString("the corresponding No. Key.", 0, 105); 
    } 

    private void select() { 
     gsm.setState(GameStateManager.MENUSTATE); 
    } 

    public void mousePressed(int m) { 
     if (m == MouseEvent.MOUSE_CLICKED) { 
      select(); 
     } 
    } 

    @Override 
    public void keyReleased(int k) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void keyPressed(int k) { 
     // TODO Auto-generated method stub 
    } 
} 
+1

프로그램도의 mousePressed (INT 분)에 들어가 있습니까 {}? –

+1

@Override를 mousePressed (int m) {} 메소드에 추가해보십시오. 어떻게되는지보십시오. – Victor2748

+0

'g.clearRect (1, 1, GamePanel.WIDTH, GamePanel.HEIGHT);'잘못된 생각입니다. 너비와 높이가 실제로 생각하는 것과 다를 수 있습니다. 또한 자바는 일반적으로 인덱스가 0입니다. 아마도'0x0'에서 시작해야합니다. 문제를 나타내는 [실행 가능한 예제] (https://stackoverflow.com/help/mcve)를 제공하십시오. 이렇게하면 혼란이 줄어들고 응답이 향상됩니다. – MadProgrammer

답변

0

마우스에서 입력을 얻으려면 MouseListener를 구현해야합니다.

버튼을 확인하려면 ActionListener를 사용하는 것이 좋습니다. 해당 항목에서 추가 속성이 필요하면 MouseListener를 사용하십시오.

예의 MouseListener :

import java.awt.event.MouseListener; 

public void mousePressed(MouseEvent e) { 
     saySomething("Mouse pressed position " 
        + e.getPoint(), e); 
    } 
관련 문제