Java实现经典拳皇误闯冒险岛游戏的示例代码

目录
  • 前言
  • 主要设计
  • 功能截图
  • 代码实现
    • 游戏主界面
    • 英雄
  • 总结

前言

《拳皇误闯冒险岛》是拳皇和冒险岛素材的基于JavaSwing的动作类游戏,独创改编。

主要需求

拳皇迷迷糊糊醒来,发现自己在一间废弃的工厂里,地上爬满怪兽。。这么可爱的怪兽,一拳下去,应该会哭很久吧~拳皇心里吐槽了下,向怪兽的怀抱冲了上去~~

主要设计

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;

	/**实现动画<br>
	 * 图片帧索引<br>
	 * sri:stand_right_index:人物静止站立(右)<br>
	 * sli:stand_left_index:人物静止站立(左)<br>
	 * jri:jump_right_index:人物跳动作(右)<br>
	 * jli:jump_left_index:人物跳动作(左)<br>
	 * wli:walk_left_index:人物行走(左)<br>
	 * wri:walk_right_index:人物行走(右)<br>
	 * ari:attack_right_index:人物攻击(右)<br>
	 * ali:attach_left_index:人物攻击(左)<br>
	 * 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<Monster> monsters=new ArrayList<Monster>();

	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<monsters.size();i++) {
			Monster m=monsters.get(i);
			if(m.islive) {
				if(m.left) {
					img.drawImage(m.imgs_left[m.index],m.mX,m.Y,70,70,this);
				}
				else if(m.right) {
					img.drawImage(m.imgs_right[m.index],m.mX,m.Y,70,70,this);
				}
			}
		}

		/**
		 * 如果主角处于被攻击状态*/
		if(Hero.ishurted) {

		}
		/**
		 * 主角昏迷了*/
		else if(Hero.isfall) {

		}
		else {
			/**
			 * 构建主角静态动作*/
			if(Hero.left && !Hero.jump && !Hero.walk && !Hero.attack && !Hero.skill0_attack) {
				img.drawImage(Hero.stand_left[sli],Hero.X,Hero.Y,this);
			}

			if(Hero.right && !Hero.jump && !Hero.walk && !Hero.attack && !Hero.skill0_attack) {
				img.drawImage(Hero.stand_right[sri],Hero.X,Hero.Y,this);
			}

			/**
			 * 主角跳动作,包含跳击*/
			if(Hero.jump) {
				if(Hero.attack) {
					if(Hero.left) {
						img.drawImage(Hero.jump_attack_left[jli],Hero.X,Hero.jumpY,this);
					}
					if(Hero.right) {
						img.drawImage(Hero.jump_attack_right[jri],Hero.X,Hero.jumpY,this);
					}
				}
				else {
					if(Hero.left) {
						img.drawImage(Hero.jump_left[jli],Hero.X-7,Hero.jumpY,this);
					}
					if(Hero.right) {
						img.drawImage(Hero.jump_right[jri],Hero.X+7,Hero.jumpY,this);
					}
				}
			}

			/**
			 * 主角非跳动作,包含行走和普通攻击*/
			else {
				if(Hero.attack) {
					if(Hero.left) {
						img.drawImage(Hero.attack_left[ali],Hero.X-50,Hero.Y,this);
					}
					if(Hero.right) {
						img.drawImage(Hero.attack_right[ari],Hero.X+50,Hero.Y,this);
					}
				}
				else {
					if(Hero.walk) {
						if(Hero.left) {
							img.drawImage(Hero.walk_left[wli],Hero.X,Hero.Y,this);
						}
						if(Hero.right) {
							img.drawImage(Hero.walk_right[wri],Hero.X,Hero.Y,this);
						}
					}
					/**技能释放优先级最低*/
					else {
						if(Hero.skill0_attack) {
							if(Hero.left) {
								img.drawImage(Hero.skill0_attack_left[s0i],Hero.X-40,Hero.Y-75,this);
							}
							if(Hero.right) {
								img.drawImage(Hero.skill0_attack_right[s0i],Hero.X-10,Hero.Y-80,this);
							}
						}
					}
				}
			}
		}

		img.dispose();
		g.drawImage(ImageBuffer,0,0,this);

		//super.paint(g);

	}

	class ActionThread implements Runnable{

		public ActionThread() {
			// TODO Auto-generated constructor stub
			new Thread(this).start();
		}

		@Override
		public void run() {
			// TODO Auto-generated method stub
			while(Hero.HP_NOW>0) {
				if(!Hero.ishurted) {
					/**
					 * 非跳起状态*/
					if(!Hero.jump) {

						/**
						 * 优先级attack>walk>skill>stand*/
						if(Hero.attack) {
							for(int i=0;i<Hero.attack_right.length;i++) {
								if(Hero.left) {
									ali=i;
								}
								else if(Hero.right) {
									ari=i;
								}
								repaintUI(80);
							}
							ali=0;
							ari=0;
							Hero.attack=false;
						}
						else {
							/**
							 * 行走状态*/
							if(Hero.walk) {
								for(int i=0;i<Hero.walk_right.length;i++) {
									/**如果提前释放AD键或者按了空格键则立刻停止*/
									if(!Hero.walk || Hero.jump) {
										break;
									}
									if(Hero.left) {
										wli=i;
										Hero.X-=Hero.step;
										if(Hero.X<=0) {
											/********更换场景********/
											if(bgindex!=0) {
												bgindex--;
												Hero.X=GameValue.Width-105;
												AllClear();
												repaint();
											}

											else{
												Hero.X=0;
											}
										}
									}
									else if(Hero.right) {
										wri=i;
										Hero.X+=Hero.step;
										if(Hero.X>=(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<Hero.skill0_attack_right.length;i++) {
											s0i=i;
											repaintUI(80);
										}
									}
									else if(Hero.MP_NOW<=0) {
										Hero.MP_NOW=0;
										repaint();
									}
									s0i=0;
									Hero.skill0_attack=false;
								}

								else {
									for(int i=0;i<Hero.stand_right.length;i++) {
										/**如果按了AD键或者按了空格键则立刻停止*/
										if(Hero.walk || Hero.jump) {
											break;
										}
										if(Hero.left) {
											sli=i;
										}
										else if(Hero.right) {
											sri=i;
										}
										if(Hero.X>=(GameValue.Width-101)) {
											Hero.X=GameValue.Width-101;
										}
										repaintUI(100);
									}
								}
							}
						}
					}

					/**
					 * 跳起状态*/
					else if(Hero.jump) {
						for(int i=0;i<Hero.jump_right.length;i++) {

							if(Hero.left) {
								jli=i;
							}
							else if(Hero.right) {
								jri=i;
							}

							if(KeyWork.pressA) {
								Hero.X-=Hero.step+5;
								if(Hero.X<=0) {
									Hero.X=0;
								}
							}
							else if(KeyWork.pressD) {
								Hero.X+=Hero.step+5;
								if(Hero.X>=(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();
		}
	}

	/**
	 * 消灭所有妖怪<br>
	 * 使妖怪再生*/
	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("重开");
		}
	}

}

总结

通过此次的《拳皇误闯冒险岛》游戏实现,让我对swing的相关知识有了进一步的了解,对java这门语言也有了比以前更深刻的认识。

java的一些基本语法,比如数据类型、运算符、程序流程控制和数组等,理解更加透彻。java最核心的核心就是面向对象思想,对于这一个概念,终于悟到了一些。

以上就是Java实现经典拳皇误闯冒险岛游戏的示例代码的详细内容,更多关于Java拳皇误闯冒险岛的资料请关注我们其它相关文章!

(0)

相关推荐

  • Java实现经典捕鱼达人游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏窗体 鱼 鱼池类继承自Jpanel 总结 前言 <捕鱼达人>是一款以深海狩猎为题材的休闲竞技游戏.这是一场海底世界的远征,享受捕获大鱼的乐趣,但不是所有的鱼都是友善的,它们会用自己的方式保护自己,保卫属于自己的海底世界.当然,这里也是冒险与机遇共存的地方,诸多埋藏于海底的宝藏等待着被探寻. 游戏是用java语言实现,采用了swing技术进行了界面化处理,设计思路用了面向对象思想. 主要需求 在鱼池中有很多鱼,鱼各自游动. 有一张渔网,随鼠标移动,点

  • Java实现经典游戏复杂迷宫

    目录 前言 主要设计 功能截图 代码实现 总结 前言 人类建造迷宫已有5000年的历史.在世界的不同文化发展时期,这些奇特的建筑物始终吸引人们沿着弯弯曲曲.困难重重的小路吃力地行走,寻找真相.迷宫类小游戏应运而生.在游戏中,迷宫被表现为冒险舞台里,藏有各式各样奇妙与谜题或宝藏的危险区域.型态有洞窟.人工建筑物.怪物巢穴.密林或山路等.迷宫内有恶徒或凶猛的生物(真实存在或想像物体都有)徘徊,其中可能会有陷阱.不明设施.遗迹等. <复杂迷宫>游戏是用java语言实现,采用了swing技术进行了界面

  • Java实现简易GUI贪吃蛇小游戏

    本文实例为大家分享了Java实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 主启动类 import javax.swing.*; /** * @author The Setting sun * @create 2021-09-11 15:19 */ //主启动类 public class StartGame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setResizable(f

  • java实现简单猜拳小游戏

    本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下 User.java import java.util.Scanner; public class User { String name; int score; public int showFist(){ System.out.println ("请出拳:1.剪刀\t2.石头\t3.布"); Scanner input=new Scanner ( System.in ); int choice=input.

  • Java实现和电脑玩剪刀石头布游戏

    剪刀石头布游戏大家都玩过吧,今天分享Java实现和电脑玩剪刀石头布游戏的具体代码,供大家参考,具体内容如下 游戏总类 import java.util.Scanner; public class Game { Scanner input = new _Scanner(System.in); String judge; int num1;//人返回的数字 int num2;//机器返回的数字 Computer computer = new Computer(); Person person = n

  • Java实现经典大富翁游戏的示例详解

    目录 前言 主要设计 功能截图 代码实现 总结 前言 大富翁,又名地产大亨.是一种多人策略图版游戏.参与者分得游戏金钱,凭运气(掷骰子)及交易策略,买地.建楼以赚取租金.英文原名monopoly意为“垄断”,因为最后只得一个胜利者,其余均破产收场. <大富翁>游戏是用java语言实现,采用了swing技术进行了界面化处理,设计思路用了面向对象思想. 主要需求 可多人参与的大富翁游戏,玩家有初始资金,通过掷骰子,玩家移动指定骰子点数步骤,根据对应格子上的交易策略,来决定是赚钱还是亏钱,其他玩家破

  • Java+Swing实现中国象棋游戏

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 二.系统展示 三.部分代码 一.系统介绍 1.开发环境 开发工具:Eclipse2021 JDK版本:jdk1.8 Mysql版本:8.0.13 2.技术选型 Java+Swing 3.系统功能 实现中国象棋游戏,开始游戏,悔棋,退出功能. 二.系统展示 1.首页 2.红旗走 3.黑棋走 三.部分代码 ChineseCheseRule.java package com.sjsq; import java.awt.event.Mouse

  • Java实现经典拳皇误闯冒险岛游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏主界面 英雄 总结 前言 <拳皇误闯冒险岛>是拳皇和冒险岛素材的基于JavaSwing的动作类游戏,独创改编. 主要需求 拳皇迷迷糊糊醒来,发现自己在一间废弃的工厂里,地上爬满怪兽..这么可爱的怪兽,一拳下去,应该会哭很久吧~拳皇心里吐槽了下,向怪兽的怀抱冲了上去~~ 主要设计 1.游戏面板生成显示 2.背景选用冒险岛素材图 3.设计英雄,包含生命值,法术值,英雄的动作变化处理,英雄的技能特效 4.设计怪兽,包含怪物血量,攻击力,位置,步长等 5.

  • Java实现升级版布谷鸟闯关游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏启动类 核心类 线程类用于重复绘图 总结 前言 <布谷鸟闯关-升级版>是一个基于java的布谷鸟闯关游戏,鼠标左键点击控制鸟的位置穿过管道间的缝隙,需要做碰撞检测,监听键盘事件,背景图片的切换,障碍物管道产生时y轴上需要随机位置. 主要设计 1.设计游戏界面,用swing实现 2.设计背景 3.设计移动墙 4.设计布谷鸟 5.设计障碍物 6.设计背景音乐和音效 7.新增用户账号注册登录功能 8.引用mysql数据库,管理用户账号密码和储存排行榜等信

  • Java实现贪吃蛇大作战小游戏的示例代码

    目录 效果展示 项目介绍 项目背景 总体需求 实现过程 代码展示 项目结构 总结 大家好,今天尝试用swing技术写一个贪吃蛇大作战小游戏,供大家参考. 效果展示 效果展示 一.游戏界面 二.得分情况 项目介绍 项目背景 “贪吃蛇大作战”游戏是一个经典的游戏,它因操作简单.娱乐性强,自从计算机实现以来,深受广大电脑玩家的喜爱,本项目基于Java技术,开发了一个 操作简单.界面美观.功能较齐全 的“贪吃蛇”游戏.通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的. 总体需求  本系统主

  • Java实现泡泡堂对战版游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏启动类 核心监听类 核心线程类 总结 前言 <泡泡堂II>是一个基于java的自制游戏,使用了MVC模式,分离了模型.视图和控制器,使得项目结构清晰易于扩展,使用配置文件来设置游戏基本配置,扩展地图人物道具等.同时,该程序编写期间用了单例模式.工厂模式.模板模式等设计模式.为了游戏的可玩性,特意设计了平滑碰撞以及机器人. 主要设计 设计游戏界面,用swing实现 绘制游戏启动界面.结束界面.地图.主角.道具 实现泡泡爆炸 为了尽量复原泡泡堂游戏,初

  • JAVA实现经典扫雷游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 总结 前言 windows自带的游戏<扫雷>是陪伴了无数人的经典游戏,本程序参考<扫雷>的规则进行了简化,用java语言实现,采用了swing技术进行了界面化处理,设计思路用了面向对象思想. 主要需求 1.要有难度等级,初级,中级,高级 2.由玩家逐个翻开方块,以找出所有地雷为最终游戏目标.如果玩家翻开的方块有地雷,则游戏结束 3.游戏主区域由很多个方格组成.使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字:方格中数字则表示其

  • Java实现经典角色扮演侦探游戏游戏的示例代码

    目录 前言 游戏背景 主要需求 主要设计 功能截图 代码实现 游戏主界面 主卧 初始化 大厅 总结 前言 游戏背景 百变山庄坐落于太平洋的一座小岛上,山庄主人亦是小岛的主人.这个神秘主人细致周到,邀请函里不仅附着往返港口的机票,港口的邮船也是通往小岛的专线. 初登小岛,恢宏大气的山庄直入眼帘,通过门廊,金碧辉煌的大厅震人心魄. 受邀的侦探们陆续到齐,[侍者]彬彬有礼地站在一旁,他安排你们围坐在一个奇特十边形的桌子旁稍加等待.[侦探指尖]回忆着自己临行前调查的各位名侦探的资料,除了那个神秘的[电话

  • Java实现萝卜勇者游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 启动类 键盘监听 核心算法 总结 前言 <萝卜勇者>是由国内玩家自制的一款独立游戏,玩家扮演萝卜勇士闯关,打败各种邪恶的敌人,获得最后的胜利. <萝卜勇者>游戏是用java语言实现,采用了swing技术进行了界面化处理,设计思路用了面向对象思想. 主要需求 参考<萝卜勇者>的剧情,实现JAVA版本的单机游戏. 主要设计 1. 用Swing库做可视化界面 2.键盘监听,用WSAD可以控制光标移动,J是确定,K是取消,游戏中,WSA

  • Java实现warcraft java版游戏的示例代码

    目录 前言 主要需求 功能截图 代码实现 启动入口 ModelAttacker类 ModelUnit类 总结 前言 致敬经典的warcraft,<warcraft java版>是一款即时战略题材单机游戏,采用魔兽原味风格和机制.收集资源,建造防御工事,消灭所有敌军. 人类:洛丹伦人类联盟自兽人首次穿过黑暗之门时便告成立.他们坚韧不拔,勇敢无畏,身穿坚甲,手握利刃,英勇迎敌. 兽人:兽人是一个粗犷而坚韧的种族,他们身穿简单的皮毛和带有尖刺的皮甲,以肆意凶狠的战斗风格而闻名. 用java语言实现,

  • C#实现经典飞行棋游戏的示例代码

    目录 效果展示 主函数 场景类型枚举 控制台基础设置 开始及结束场景逻辑 游戏场景逻辑 固定打印的信息 格子类型枚举和格子结构体 地图结构体 玩家和电脑结构体 绘制玩家 扔骰子逻辑 效果展示 主函数      static void Main(string[] args)         {             int w = 50;             int h = 30;             ConsoleInit(w, h);             E_SceneType

随机推荐