千家信息网

Java如何实现经典拳皇误闯冒险岛游戏

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要为大家展示了"Java如何实现经典拳皇误闯冒险岛游戏",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Java如何实现经典拳皇误闯冒险岛游戏"这篇
千家信息网最后更新 2025年01月20日Java如何实现经典拳皇误闯冒险岛游戏

这篇文章主要为大家展示了"Java如何实现经典拳皇误闯冒险岛游戏",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Java如何实现经典拳皇误闯冒险岛游戏"这篇文章吧。

    主要设计

    1、游戏面板生成显示

    2、背景选用冒险岛素材图

    3、设计英雄,包含生命值,法术值,英雄的动作变化处理,英雄的技能特效

    4、设计怪兽,包含怪物血量,攻击力,位置,步长等

    5、键盘监听:

    按下空格:跳

    按A键或左方向键<- :向左

    按D键或右方向键-> :向右

    按S键或下方向键 +K键:释放技能

    按J键:攻击

    功能截图

    游戏开始

    拳皇攻击

    拳皇放技能

    代码实现

    游戏主界面

    public class MainFrame extends JFrame {                /**         *          */        private static final long serialVersionUID = 7492509868810783126L;        private static KeyWork key;                //双缓冲方法解决闪烁问题        Image ImageBuffer=null;            Graphics img;        /**实现动画
    * 图片帧索引
    * sri:stand_right_index:人物静止站立(右)
    * sli:stand_left_index:人物静止站立(左)
    * jri:jump_right_index:人物跳动作(右)
    * jli:jump_left_index:人物跳动作(左)
    * wli:walk_left_index:人物行走(左)
    * wri:walk_right_index:人物行走(右)
    * ari:attack_right_index:人物攻击(右)
    * ali:attach_left_index:人物攻击(左)
    * s0i:skill0_index:一技能攻击*/ public static int sri=0,sli=0,jri=0,jli=0,wli=0,wri=0, ari=0,ali=0,s0i=0; /**场景*/ int bgindex=0; public static List monsters=new ArrayList(); public MainFrame() { this.setTitle("拳皇误闯冒险岛"); this.setBounds((int)(GameValue.WIDTH-GameValue.Width)/2,(int)(GameValue.HEIGHT-GameValue.Hight)/2,GameValue.Width,GameValue.Hight); this.setLayout(null); this.setResizable(false); key=new KeyWork(); this.addKeyListener(key); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub isclose(); } }); initMonster(); new ActionThread(); } private void initMonster() { new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub while(true) { try { Monster m=new Monster(); monsters.add(m); /** * 生成妖怪的间隔*/ Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); } public void isclose() { System.exit(0); int choose=JOptionPane.showConfirmDialog(this,"是否退出?", "退出",JOptionPane.YES_NO_OPTION); if(choose==0){ System.exit(0); } else setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); } public void display(boolean show) { this.setVisible(show); } @Override public void paint(Graphics g) { if(ImageBuffer==null){ ImageBuffer=createImage(this.getWidth(),this.getHeight()); } img=ImageBuffer.getGraphics(); super.paint(img); img.drawImage(GameValue.bgimgs[bgindex],0,0,GameValue.Width,GameValue.Hight,this); /** * 构建主角信息*/ img.setColor(Color.WHITE); img.setFont(GameValue.display_font); int x0=30,y0=70,yh=20+8; img.drawString("生命值", x0,y0); img.drawString("法术值", x0,y0+yh); /** * 分别是生命值和法术值*/ img.drawRect(x0*3+8-1, y0-15-1, 150+1, 15+1); img.drawRect(x0*3+8-1, y0+yh-15-1, 150+1, 15+1); img.setColor(Color.GREEN); int hp_width=(int)(((double)(Hero.HP_NOW)/Hero.HP_ALL)*150); img.fillRect(x0*3+8, y0-15, hp_width, 15); img.setColor(Color.BLUE); int mp_width=(int)(((double)(Hero.MP_NOW)/Hero.MP_ALL)*150); img.fillRect(x0*3+8, y0+yh-15, mp_width, 15); img.setColor(Color.WHITE); img.drawString(Hero.HP_NOW+"/"+Hero.HP_ALL,x0*3+8-1+45, y0); img.drawString(Hero.MP_NOW+"/"+Hero.MP_ALL,x0*3+8-1+45, y0+yh); for(int i=0;i0) { if(!Hero.ishurted) { /** * 非跳起状态*/ if(!Hero.jump) { /** * 优先级attack>walk>skill>stand*/ if(Hero.attack) { for(int i=0;i=(GameValue.Width-80)) { /********更换场景********/ if(bgindex!=GameValue.bgimgs.length-1) { bgindex++; Hero.X=0; AllClear(); repaint(); } else{ Hero.X=GameValue.Width-80; } } } repaintUI(100); } } /** * 静止状态*/ else { /**技能攻击*/ if(Hero.skill0_attack) { /**首先检查MP是否足够,否则不能释放技能*/ if(Hero.MP_NOW>=Hero.skill0_mp) { Hero.MP_NOW-=Hero.skill0_mp; for(int i=0;i=(GameValue.Width-101)) { Hero.X=GameValue.Width-101; } repaintUI(100); } } } } } /** * 跳起状态*/ else if(Hero.jump) { for(int i=0;i=(GameValue.Width-103)) { Hero.X=GameValue.Width-103; } } if(i>=2 && i<=7) { Hero.jumpY-=12; } if(i>=9 && i<=14) { Hero.jumpY+=12; } repaintUI(80); } jli=0; jri=0; Hero.jump=false; Hero.attack=false; repaint(); } //System.out.print(""); } else { try { Thread.sleep(200); Hero.ishurted=false; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } /**刷新界面*/ public void repaintUI(int times) { this.repaint(); try { Thread.sleep(times); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 消灭所有妖怪
    * 使妖怪再生*/ public static void AllClear() { for(Monster m:monsters) { m.islive=false; } monsters.clear(); }}

    英雄

    public class Hero {        /**         * 角色的基本属性:生命值,法术值*/        public static int HP_NOW=100,HP_ALL=100,MP_NOW=120,MP_ALL=120;                /**         * 角色当前所在位置X和Y,跳起时所用Y*/        public static int X=50,Y=400,jumpY=Y-52;        /**         * 角色是否被攻击,角色是否晕眩,角色朝左或朝右,角色是否跳起,角色是否行走,是否攻击,技能攻击(一技能)*/        public static boolean ishurted=false,isfall=false,left=false,right=true,jump=false,walk=false,                        attack=false,skill0_attack=false;                /**         * 定义普通攻击的伤害,跳击伤害和一技能的耗MP和伤害*/        public static int attack_hp=10,jump_attack_hp=15,skill0_mp=15,skill0_hp=20;                /**         * 角色步长*/        public static int step=15;                /**         * 角色图片素材-左站*/        public static Image[] stand_left= {                        Toolkit.getDefaultToolkit().getImage("img/role/stand-left/stand01.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/stand-left/stand02.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/stand-left/stand03.png")        };                /**         * 角色图片素材-左跳*/        public static Image[] jump_left= {                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/5.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/6.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/7.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/8.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/9.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/10.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/11.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/12.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/13.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/14.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/15.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/16.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/17.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/18.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-left/19.png")        };                /**         * 角色图片素材-左走*/        public static Image[] walk_left= {                        Toolkit.getDefaultToolkit().getImage("img/role/walk-left/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-left/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-left/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-left/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-left/4.png")        };                /**         * 角色图片素材-左攻击*/        public static Image[] attack_left= {                        Toolkit.getDefaultToolkit().getImage("img/role/attack-left/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-left/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-left/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-left/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-left/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-left/5.png")        };                /**         * 角色图片素材-左跳击*/        public static Image[] jump_attack_left= {                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/5.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/6.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/7.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/8.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/9.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/10.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/11.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/12.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/13.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/14.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/15.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/16.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/17.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/18.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-left/19.png")        };                /**         * 角色图片素材-一技能动画-左*/        public static Image[] skill0_attack_left= {                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/5.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/6.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/7.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/8.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/9.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/10.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/11.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/12.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/13.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/14.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/15.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/16.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/17.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/18.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/19.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/left/20.png")        };                        /**************************************************************************/                /**         * 角色图片素材-右站*/        public static Image[] stand_right= {                        Toolkit.getDefaultToolkit().getImage("img/role/stand-right/stand01.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/stand-right/stand02.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/stand-right/stand03.png")        };                /**         * 角色图片素材-右跳*/        public static Image[] jump_right= {                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/5.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/6.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/7.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/8.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/9.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/10.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/11.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/12.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/13.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/14.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/15.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/16.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/17.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/18.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-right/19.png")        };                /**         * 角色图片素材-右走*/        public static Image[] walk_right= {                        Toolkit.getDefaultToolkit().getImage("img/role/walk-right/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-right/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-right/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-right/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/walk-right/4.png")        };                /**         * 角色图片素材-右攻击*/        public static Image[] attack_right= {                        Toolkit.getDefaultToolkit().getImage("img/role/attack-right/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-right/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-right/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-right/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-right/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/attack-right/5.png")        };                /**         * 角色图片素材-右跳击*/        public static Image[] jump_attack_right= {                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/5.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/6.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/7.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/8.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/9.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/10.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/11.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/12.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/13.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/14.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/15.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/16.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/17.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/18.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/jump-attack-right/19.png")        };                /**         * 角色图片素材-一技能动画-右*/        public static Image[] skill0_attack_right= {                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/0.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/1.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/2.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/3.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/4.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/5.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/6.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/7.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/8.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/9.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/10.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/11.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/12.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/13.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/14.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/15.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/16.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/17.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/18.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/19.png"),                        Toolkit.getDefaultToolkit().getImage("img/role/skills/0/right/20.png")        };                public static void attacked(int atk) {                ishurted=true;                HP_NOW-=atk;                                if(HP_NOW<0) {                        HP_NOW=0;                        FightGameLaunch.getMainFrame().repaint();                        int choose=JOptionPane.showConfirmDialog(null,"游戏结束,是否退出?",                                        "退出",JOptionPane.YES_NO_OPTION);                        if(choose==0){                                System.exit(0);                        }                        else                                System.out.println("重开");                }        }}

    以上是"Java如何实现经典拳皇误闯冒险岛游戏"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    0