Esc界面代码实现

项目代码实现

    首先,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不久,因此代码必有有漏洞之处,见谅

时间: 2024-08-02 16:20:13

Esc界面代码实现的相关文章

java swing高仿酷我音乐界面代码例子下载

原文:java swing高仿酷我音乐界面代码例子下载 代码下载地址:http://www.zuidaima.com/share/1550463245044736.htm 高仿酷我音乐界面尽情欣赏 java swing高仿酷我音乐界面代码例子下载,布布扣,bubuko.com

基于bootstrap后台登录界面代码

分享一款基于bootstrap后台登录界面代码.这是一款基于基于bootstrap和css3实现的自适应移动端优先的登录界面代码.实现的效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="signin"> <div class="signin-head"><img src="images/test/head_120.png" alt="" class=&qu

jquery后台登录页面背景图片自动轮换登录界面代码

在别的网站上看到的比较炫酷的Web登陆界面,背景图片可以自动轮换.介绍给大家,有兴趣的可以下来改改当做自己系统的登陆界面. 如图: 点击下载源代码 jquery后台登录页面背景图片自动轮换登录界面代码

计算器界面代码重构

计算器界面代码重构什么是软件开发过程中的重构?重构(Refactoring)——以改善代码质量为目的代码重写 使其软件的设计和架构更加合理 提高软件的扩展性和维护性 代码实现与代码重构不同——代码实现 按照设计编程实现,重心在于功能实现——代码重构 以提高代码质量为目的软件架构设计 区别: 代码实现时不考虑架构的好坏,只考虑功能的实现 代码重构时不能影响已实现的功能,只考虑架构的改善 QCalculatorUI.h #ifndef _QCALCULATORUI_H_ #define _QCALC

android延迟进入主界面和点击按钮进入主界面代码

我是做web开发的,最近在学习android. 周末的时候想写个延迟进入主界面的功能,主要用到Handler和Runnable,代码如下:  package com.zx.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widge

【IOS 开发】IOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

一. IOS 项目简介 1. IOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源; (1) HelloWorld 目录 HelloWorld 目录介绍 : -- 命名规则 : 该目录名称与 IOS 项目名称相同, 是主目录; -- 存放内容 : IOS 项目的 源码文件, 界面设计文件, 资源文件都存放在该目录下; -- 源文件 : Objective C 的 .m 和

第九课、计算器界面代码重构

一.重构的概念 1.重构是以改善代码质量为目的代码重写 (1).使其软件的设计和架构更加合理 (2).提高软件的扩展性和维护性 2.代码实现和代码重构的不同 (1).代码实现:按照设计编程实现,重在实现功能 (2).代码重构:以提高代码质量为目的软件架构优化 (3).区别 A.代码实现时不考虑架构的好坏,只考虑功能的实现 B.代码重构时不影响已实现的功能,只考虑架构的改善 3.软件开发的过程 (1).从工程的角度对软件开发中的活动进行定义和管理 4.什么样的代码需要重构 (1).当发现项目中重复

2019.6.17 登陆界面代码

登陆界面 class User(): def __init__(self,name,pwd): self.name=name self.pwd=pwd class Acount(): def __init__(self): self.list=[] def login(self): print("欢迎来到登陆界面") name = input("请输入用户名:") pwd = input("请输入密码:") for user in self.li

博客园界面代码风格(代码样式)自定义设置

使用highliht的样式自定义自己的代码样式 1.在highlight.js demo选一个你自己喜欢的代码风格 我用的是vscode编辑器,因此我比较喜欢 Atelier Heath Light 这款风格 2.在highlight.js demo下载你喜欢的风格 3.修改风格样式将 .h1js  (注意有个空格)替换成 '.cnblogs-markdown .hljs', .hljs- 替换成'.cnblogs-markdown .hljs-' 我的编辑器操作做如下,选择全部替换,目的是添加