Java如何实现经典拳皇误闯冒险岛游戏
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要为大家展示了"Java如何实现经典拳皇误闯冒险岛游戏",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Java如何实现经典拳皇误闯冒险岛游戏"这篇
千家信息网最后更新 2025年11月16日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如何实现经典拳皇误闯冒险岛游戏"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
角色
图片
素材
攻击
图片素材
人物
拳皇
技能
冒险岛
冒险
一技
法术
状态
生命
英雄
经典
内容
动作
动画
妖怪
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
wmap的数据库导入教程
房山区信息网络技术推广优点
网络安全和软件正版化
上海思盾网络技术有限公司
文件如何做成数据库
山西pdu服务器电源工厂
移动网络技术是做什么的
为什么我的账户无法连接服务器
现在网络安全手抄报内容
服务器linpark测试
二手服务器价格表
石油软件开发行业现状
建立国家级重大疾病专病数据库
上位机和数据库的连接方式
韩国服务器数据安全吗
私服如何架构在服务器上
合肥好物互联网科技有限公司
查询数据库连接串
孝感服务器回收多少钱
临汾网络安全主题宣传
什么叫软件开发人月
收缩数据库定时执行
银行软件开发中心有哪些
阳江市众信网络技术有限公司
软件开发游戏难不难
怀旧服如何提升服务器等级
我国网络安全新技术
医院疫情网络安全
万方数据库论文在哪里下载
软件开发8年工作工资多少