📄 move.java
字号:
import java.awt.event.*;import java.applet.*;
import java.awt.*;
public class Move extends Applet implements KeyListener,ActionListener
{ Button b_go=new Button("go"),
b_replay=new Button("replay");
Rectangle rect1,rect2,rect3;
int b_x=0,b_y=0;
public void init()
{ b_go.addKeyListener(this);
b_replay.addActionListener(this);
setLayout(null);
//代表迷宫的矩形:
rect1=new Rectangle(20,40,200,40);
rect2=new Rectangle(200,40,24,240);
rect3=new Rectangle(200,220,100,40);
b_go.setBackground(Color.red); //代表走迷宫者的按扭。
add(b_go);b_go.setBounds(22,45,20,20);
b_x=b_go.getBounds().x;b_y=b_go.getBounds().y;
b_go.requestFocus() ;
add(b_replay);b_replay.setBounds(2,2,45,16);//点击重新开始的按扭。
}
public void paint(Graphics g)
{ //画出迷宫:
g.setColor(Color.green);
g.fillRect(20,40,200,40);
g.setColor(Color.yellow);
g.fillRect(200,40,40,240);
g.setColor(Color.cyan);
g.fillRect(200,220,100,40);
g.drawString("出口",310,220);
g.setColor(Color.black);
g.drawString("点击红色按扭,然后用键盘上的方向键移动按扭",100,20);
}
public void keyPressed(KeyEvent e)
{ //按键盘上的上下、左右键在迷宫中行走:
if((e.getKeyCode()==KeyEvent.VK_UP))
{ //创建一个和按扭:b_go 同样大小的矩形:
Rectangle rect=new Rectangle(b_x,b_y,20,20);
//要求必须在迷宫内行走:
if(rect.intersects(rect1)||rect.intersects(rect2)||
rect.intersects(rect3))
{ b_y=b_y-2;b_go.setLocation(b_x,b_y);
}
}
else if(e.getKeyCode()==KeyEvent.VK_DOWN)
{ Rectangle rect=new Rectangle(b_x,b_y,20,20);
if(rect.intersects(rect1)||rect.intersects(rect2)||
rect.intersects(rect3))
{ b_y=b_y+2;b_go.setLocation(b_x,b_y);
}
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
{ Rectangle rect=new Rectangle(b_x,b_y,20,20);
if(rect.intersects(rect1)||rect.intersects(rect2)
||rect.intersects(rect3))
{ b_x=b_x-2;b_go.setLocation(b_x,b_y);
}
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{ Rectangle rect=new Rectangle(b_x,b_y,20,20);
if(rect.intersects(rect1)||rect.intersects(rect2)||
rect.intersects(rect3))
{ b_x=b_x+2;b_go.setLocation(b_x,b_y);
}
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void actionPerformed(ActionEvent e)
{ b_go.setBounds(22,45,20,20);
b_x=b_go.getBounds().x;b_y=b_go.getBounds().y;
b_go.requestFocus() ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -