| 
 | 
 
 楼主 |
发表于 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();  
        }  
} |   
 
 
 
 |