码迷,mamicode.com
首页 > 其他好文 > 详细

Esc界面代码实现

时间:2016-04-19 17:14:12      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

项目代码实现

    首先,Esc界面的模块要弄的功能是在游戏的运行过程中,玩家能过随时按下Esc键实现弹窗,弹出的窗口中包含了玩家的基本信息,如Hp,Mp,人物的头像等等,然后当玩家再次按下Esc键时,该窗口能够关闭,窗口中还应该出现一个按钮,当晚间按下按钮时,能够退出游戏。

为了实现这个功能,首先得用Swing 弄出一个框架来,然后在框架里面添加一个面板,然后在添加许多个JLabel分别显示角色的信息。然后用setVisible(true)使框架显示出来;为了实现按下一次显示框架,第二次按下隐藏框架。声明一个 i 变量 当i变量为1时,隐藏框架并掷i=0;当i变量为0时,隐藏框架并掷i=1;以下是代码实现 (将EscAction设为自定义类便于代码的复用)

         class EscAction implements KeyListener{        
          int i=0;
          Player p;
          JFrame jf;
         JFrame f=new JFrame("角色状态");
         public EscAction(Player player,JFrame frame){
             p=player;
             jf=frame;
         }
         @Override
        public void keyPressed(KeyEvent e){
            // TODO Auto-generated method stub
            if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
                               if(i==0)
                               {    try {
                                FileInputStream fis=new FileInputStream("G:\\My_RPG_GAME\\My_RPG_GAME\\Player.txt");
                                 DataInputStream dis = new DataInputStream(fis);
                                 try {
                                    p.level1=dis.readInt();   //读取文本信息,实现数据的更改与保存
                                } catch (IOException e1) {
                                    // TODO Auto-generated catch block
                                    e1.printStackTrace();
                                }
                            } catch (FileNotFoundException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }
                                   
                                   f.setSize(400,600);
                                   f.setLocation(400,150);
                                   int Maxhp=30+(10+p.level1*5)*2;
                                   int Maxmp=20+(8+p.level1*3)*2+Maxhp/2;
                                   ImageIcon iconplayer=new ImageIcon("主角.png");
                                   JLabel name=new JLabel("       名称: "+p.name);
                                   JLabel HP=new JLabel("       HP: "+Maxhp);
                                   JLabel MP=new JLabel("       MP: "+Maxmp);
                                   JLabel Strength=new JLabel("       力量: "+(10+p.level1*5));
                                   JLabel Intelligence=new JLabel("       智力: "+(8+p.level1*3));
                                   JLabel Attact=new JLabel("       攻击力: "+(int)((10+p.level1*5) * 1.5));
                                   JLabel Defence=new JLabel("       防御力: "+(int)((10+p.level1*5 +10*p.level1) * 0.5 ));
                                   JLabel Level=new JLabel("       等级: "+p.level1);
                                   JLabel Wonpen=new JLabel("       武器: null"); //后续添加
                                   JLabel Equipment=new JLabel("       防具: null");
                                   JLabel Jweelry=new JLabel("       首饰: null");
                                   JButton Exit=new JButton("离开游戏");
                                   JPanel jp=new JPanel();
                                   jp.setLayout(new GridLayout(13,1));
                                   jp.add(new JLabel(iconplayer));
                                   jp.add(name);
                                   jp.add(HP);
                                   jp.add(MP);
                                   jp.add(Strength);
                                   jp.add(Intelligence);
                                   jp.add(Attact);
                                   jp.add(Defence);
                                   jp.add(Level);
                                   jp.add(Wonpen);
                                   jp.add(Equipment);
                                   jp.add(Jweelry);
                                   jp.add(Exit);
                                   f.setContentPane(jp);
                                   f.setFocusableWindowState(false);
                                   f.setVisible(true);
                                   i=1;
                                   f.setAlwaysOnTop(true);
                                   exitButton exit=new exitButton(jf,f);//其他功能
                                   Exit.addActionListener(exit);
                               }
                               else if(i==1)
                               {
                                   f.setVisible(false);
                                   i=0;
                               }
                           }
                   }//由于自学Swing不久,因此代码必有有漏洞之处,见谅

Esc界面代码实现

标签:

原文地址:http://www.cnblogs.com/wu-ying/p/5408723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!