GitHub地址:https://github.com/WingedCat/AirWar
原理其实和键盘控制相差不多,还是要实现鼠标监听类,添加监听。
//useMouse由F2控制,控制是不是用鼠标操作
//鼠标监听类
private class MouseMonitor extends MouseAdapter{
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按下");
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("鼠标释放");
//左键为16,右键为4
}
@Override
public void mouseMoved(MouseEvent e) {
if(useMouse){
myplane.setX(e.getX());
myplane.setY(e.getY());
}
}
@Override
public void mouseDragged(MouseEvent e) {
if(useMouse){
System.out.println(e.getModifiers());
myplane.setX(e.getX());
myplane.setY(e.getY());
}
}
@Override
public void mouseEntered(MouseEvent e) {
if(useMouse){
//鼠标进入设置鼠标消失
//设置鼠标消失的方法就是将鼠标设置为一张透明的图片
Toolkit tk =Toolkit.getDefaultToolkit() ;
Image img = GameImage.getImage("resources/cur.png");
Cursor ret =tk.createCustomCursor(img, new Point( 10,10) ,"mycur");
game.setCursor(ret);
}
}
}
static GameFrame game = new GameFrame();//为了使鼠标监听类中能使用,设置为全局的
public static void main(String[] args) {
game.launchFrame();
new BgThread().start();
new PlaySound("bgmusic.mp3", true).start();
game.addKeyListener(game.new KeyMonitor());//添加键盘监听
game.setCursor(null);
game.addMouseListener(game.new MouseMonitor());
game.addMouseMotionListener(game.new MouseMonitor());//添加鼠标监听
}
实现了鼠标控制飞机的移动,并且使鼠标进入窗体时消失