*1:通过模拟鼠标和键盘事件来实现最简单的一种外挂。
*2:我一定要用JAVA实现这个剑侠的外挂,所以我必须要把关于java中鼠标和键盘事件的基本类搞清楚
(1):使用MouseListener 接口可以实现5种操作发生的鼠标事件!
1:在事件源上 按下2放开3单击(在同一个事情上如果发生按下和放开他也就是单击,但按下后鼠标离开
事件源 叫按下,连续2次在同一个事件源上发生按下和放开叫双击)4:鼠标进入事件源,5鼠标离开事件
源)
3:鼠标的事件在JAVA中的类是MouseEvent类,当发生鼠标事件是,MouseEvent类自动创建一个事件对象!
他里面包含了:
1:getX();获取鼠标在事件源中的x坐标
2:getY();
3:getModifiers()获取鼠标的左键或者右键!鼠标的左键和右见分别用InputEvent类中的常量BUTTON1_MASK
和BUTTON3_MASK来表示!
4:getClickCount()获取鼠标被打击的次数!
5:getSource();获取鼠标发生的事件源!事件源获得监视器的方法是:addMouseListener(this);
4:MouseListener接口中的所有方法:
1:mousePressed(MouseEvent) 负责处理鼠标按下的事!
2:mouseReleased(MouseEvent),负责放开后的事情!
3:mouseEntered(MouseEvent); 负责鼠标进入事件源的事!
4:mouseExited(MouseEvent);负责鼠标离开时间远的事情
5:mouseClicked(MouseEvent)负责处理鼠标 单击 事!
以上是 使用接口MouseListener的用法,以及详细介绍了!MouseEvent类中的方法!确保建立明确的事件对象!
下面是个小列子!
*/
import java.applet.*; import java.awt.*; import java.awt.event.*; public class Shiyan2 extends Applet implements MouseListener { TextField text; Button anniu; public void init() { text=new TextField("怎么看不见?",40); anniu=new Button("riyixia"); add(text);add(anniu); addMouse Listener(this); } public void mousePressed(MouseEvent e) { text.setText("mouse pressed in :"+e.getX()+"/"+e.getY()); } public void mouseReleased(MouseEvent e) { text.setText("mouse relaeased in :"+e.getX()+"/"+e.getY()); } public void mouseEntered(MouseEvent e) { text.setText("mouse Entered to :"+e.getX()+"/"+e.getY()); } public void mouseExited(MouseEvent e) { text.setText("mouse zoule to :"+e.getX()+"/"+e.getY()); } public void mouseClicked(MouseEvent e) {if (e.getClickCount()==2) { text.setText("mouse shuanji to :"+e.getX()+"/"+e.getY()); } else { } } }
/**以上是一个最简单的例子它只能查看鼠标的活动而不能控制鼠标的活动,而外挂必须是游戏中的(目标-也
就是我们控制的小机器人-_-)!所产生的活动我们必须自动捕捉并形成MouseEvent对象!下一步我们再来看
个简单的例子!*/
class Shiyan extends Canvas implements MouseListener { int left=1,right=-1; int x=1,y=-1; TextArea text; Shiyan() { setSize(100,100); setBackground(Color.cyan); addMouseListener(this); } public void paint(Graphics g) { if(left==1) { g.drawRect(x-10,y-10,20,20); } else if (right==1) { g.drawOval(x-8,y-8,16,16); } } public void mousePressed(MouseEvent e) { x=e.getX();y=e.getY(); if (e.getModifiers()==InputEvent.BUTTON1_MASK) { left=1;right=-1; repaint(); } else if (e.getModifiers()==InputEvent.BUTTON3_MASK) { left=-1;right=1; repaint(); } } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { //text.setText("mouse zoule to :"+e.getX()+"/"+e.getY()); } public void mouseExited(MouseEvent e) { left=-1;right=-1; } public void mouseClicked(MouseEvent e) { } public void update(Graphics g) { if (left==1||right==1) { paint(g); } else { super.update(g); } } } public class Shiyan2 { public static void main(String args[]) { Frame f=new Frame("一切为人类!"); f.setBounds(100,100,200,200); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.add(new Shiyan(),BorderLayout.CENTER); f.validate(); } }
/** 上面的这个程序说明了 用鼠标可以干好多事情的!关键看你去给他什么功能了!但我们还是没有学到
如何让鼠标自动移动并产生一系列鼠标效果!不怕我们再接着学习。鼠标的第2个接口
MouseMotionListener 该接口可以处理2中鼠标操作发生的鼠标事件!
1:在事件源上拖动鼠标,
2:在事件源上移动鼠标
鼠标的事件类型仍然是MouseEvent,当发生鼠标事件是,MouseEvent类自动捕捉并创建一个事件对象!
事件源获得监视器的方法是addMouseMotionListener(监视器)
该接口中有
1:mouseDragged(MouseEvent) 负责鼠标拖动事件!
2:mouseMoved(MouseEvent) 负责鼠标移动事件!
*/
public class Shiyan2 extends Applet implements MouseMotionListener { int x=1,y=-1; public void init() { setBackground(Color.green); addMouseMotionListener(this); } public void paint(Graphics g) { if (x!=-1&&y!=-1) { g.setColor(Color.red); g.drawLine(x,y,x,y); } } public void mouseDragged(MouseEvent e) { x=(int)e.getX();y=(int)getY(); repaint(); } public void mouseMoved(MouseEvent e){} public void update(Graphics g) {paint(g);} }