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 Listmonsters=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;i 0) { 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安全错误
数据库的锁怎样保障安全
新基建网络安全性
查看mariadb数据库版本
倪光南院士谈网络技术
县网信办网络安全特色做法
软件开发 创业失败
备份的数据库不是.bak
灵寿网络安全宣传
软件开发快速原型模型的特点
云南财务软件开发教程
常州合法网络技术有限公司
同花顺连接不了服务器什么问题
计算机网络安全前沿技术
java软件开发哪个质量好
通信和网络技术的工作内容
手机软件开发实习报告
软件开发项目和集成类
教育和网络安全作文350字
服务器行业投资策略
易语言如何发送服务器
上网提示网络安全性低
河南卫视国家网络安全
英雄联盟欧洲服务器
网络安全和保密的区别
用u盘安装服务器系统
社区网络安全的监管
爱刮刮网络技术有限公司
巴中多媒体软件开发
服务器pvp形式有哪种
麒麟服务器操作系统命令界面
平台计算软件开发