|
楼主 |
发表于 2003-5-21 09:28:12
|
显示全部楼层
我就是用的javac编译的,是一个applet程序,下面是代码
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
class People extends Button implements FocusListener
{
Rectangle rect=null;
int left_x,left_y;
int width,height;
String name; int number;
People(int number,String s,int x,int y,int w,int h,HuaRongRoad road)
{
super(s);
name=s;this.number=number;
left_x=x;left_y=y;
width=w;height=h;
setBackground(Color.yellow);
road.add(this);
addKeyListener(road);
setBounds(x,y,w,h);
addFocusListener(this);
rect=new Rectangle(x,y,w,h);
}
public void focusGained(FocusEvent e)
{
setBackground(Color.red);
}
public void focusLost(FocusEvent e)
{
setBackground(Color.yellow);
}
}
public class HuaRongRoad extends Applet implements KeyListener,ActionListener
{
People people[]=new People[10];
Rectangle left,right,above ,below;
Button restart=new Button("重新开始");
public void init()
{
setLayout(null);
add(restart);
restart.setBounds(5,5,80,25);
restart.addActionListener(this);
people[0]=new People(0,"曹操",104,54,100,100,this);
people[1]=new People(1,"关羽",104,154,100,50,this);
people[2]=new People(2,"张飞",54, 154,50,100,this);
people[3]=new People(3,"刘备",204,154,50,100,this);
people[4]=new People(4,"张辽",54, 54, 50,100,this);
people[5]=new People(5,"曹仁",204, 54, 50,100,this);
people[6]=new People(6,"兵",54,254,50,50,this);
people[7]=new People(7,"兵",204,254,50,50,this);
people[8]=new People(8,"兵",104,204,50,50,this);
people[9]=new People(9,"兵",154,204,50,50,this);
people[9].requestFocus();
left=new Rectangle(49,49,5,260);
people[0].setForeground(Color.green);
right=new Rectangle(254,49,5,260);
above=new Rectangle(49,49,210,5);
below=new Rectangle(49,304,210,5);
}
public void paint(Graphics g)
{
g.setColor(Color.blue);
g.fillRect(49,49,5,260);
g.fillRect(254,49,5,260);
g.fillRect(49,49,210,5);
g.fillRect(49,304,210,5);
g.drawString("点击相应的人物,用上下左右箭头移动",100,20);
g.setColor(Color.red);
g.drawString("使曹操到达此处",110,330);
}
public void keyPressed(KeyEvent e)
{
People man=(People)e.getSource();
man.rect.setLocation(man.getBounds().x, man.getBounds().y);
if(e.getKeyCode()==KeyEvent.VK_DOWN)
{
man.left_y=man.left_y+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people.rect))&&(man.number!=i))
{
man.left_y=man.left_y-50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(below))
{
man.left_y=man.left_y-50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(e.getKeyCode()==KeyEvent.VK_UP)
{
man.left_y=man.left_y-50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people.rect))&&(man.number!=i))
{
man.left_y=man.left_y+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(above))
{
man.left_y=man.left_y+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(e.getKeyCode()==KeyEvent.VK_LEFT)
{
man.left_x=man.left_x-50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people.rect))&&(man.number!=i))
{
man.left_x=man.left_x+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(left))
{
man.left_x=man.left_x+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{
man.left_x=man.left_x+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people.rect))&&(man.number!=i))
{
man.left_x=man.left_x-50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(right))
{
man.left_x=man.left_x-50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
}
public void keyTyped(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
}
public void actionPerformed(ActionEvent e)
{
this.removeAll();
this.init();
}
} |
|