Java游戏状态不变
当我设置事件Java游戏状态不变,java,Java,当我设置事件鼠标单击时应该返回主菜单,但当我单击鼠标时,它什么也不做。我想让它转到主菜单的MENUSTATE,但什么也没发生。我需要帮助,因为这是一个学校项目,我不知道怎么了 package GameState; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.event.MouseEvent; import main.GamePanel; public clas
鼠标单击时
应该返回主菜单,但当我单击鼠标时,它什么也不做。我想让它转到主菜单的MENUSTATE
,但什么也没发生。我需要帮助,因为这是一个学校项目,我不知道怎么了
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
}
}
您应该实现MouseListener以从鼠标获取输入 如果您想检查按钮是否按下,我建议您使用ActionListener。如果您需要从中获得额外属性,请单击使用MouseStener 鼠标侦听器示例:
import java.awt.event.MouseListener;
public void mousePressed(MouseEvent e) {
saySomething("Mouse pressed position "
+ e.getPoint(), e);
}
你的程序甚至会进入mousePressed(intm){}吗?试着在mousePressed(intm){}方法中添加@Override,看看会发生什么是个坏主意,因为实际的宽度和高度可能与您认为的不同,而且Java通常是零索引的,这意味着您可能应该从
0x0
开始。考虑提供一个说明你的问题的方法。这将减少混乱和更好的响应