好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Java小程序之山寨版超级玛丽资料.doc

17页
  • 卖家[上传人]:f****u
  • 文档编号:113638408
  • 上传时间:2019-11-09
  • 文档格式:DOC
  • 文档大小:370.50KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Java小程序之山寨版超级玛丽一、游戏基本功能1、能够向左向右行走(键盘监听)2、能够跳跃3、能够发射子弹4、能够检测和障碍物之间的碰撞5、背景图片的移动二、游戏运行界面三、游戏大致实现思路:1.窗体2.自己角色的添加3.背景图片的添加4.背景图片的移动5.人物的移动和跳跃6.砖头、水管等等障碍物的添加7.任务和障碍物的碰撞难点分析:1.人物的多键控制1)给人物设定方向boolean变量:向左、向右、向上、向下2)通过键盘监听来修改方向的变量值 按下某个键的时候,我们把相应方向改为true,释放的时候改false2.地图配置自定义文件读取方式实现:文件流的使用和字符串String类的方法调用3.碰撞检测封装一个Rectangle类的对象4.子弹添加1)先定义一个容器,这个用于封装所有的子弹对象2)按下某个键的时候,创建一个子弹对象(以角色的坐标为基准初始化)3)把子弹对象添加到容器当中4)在paint方法中,遍历容器,取出子弹对象并进行绘制5)检测子弹如果超出了窗体边界,则需要把当前子弹从容器当中移除掉四、程序源代码:代码结构图:分了三个包、敌人类包、游戏界面类包、游戏地图配置包com.huaxin.mario包:[java] view plain copy print?在CODE上查看代码片派生到我的代码片package com.huaxin.mario; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.ArrayList; import javax.swing.ImageIcon; import javax.swing.JFrame; import com.huaxin.enery.Enery; import com.huaxin.enery.Pipe; import Util.Map; public class GameFrame extends JFrame{ public Mario mario; public Enery pipe,cion,brick; //背景图片 public BackgroundImage bg ; //容器装敌人 public ArrayList eneryList = new ArrayList(); //子弹容器 public ArrayList boomList = new ArrayList(); //子弹的速度 public int bspeed=0; //画地图,制定规则,是1画砖头,是2画金币,是3画水管 public int [][] map =null; //构造函数里面初始化背景图片和马里奥对象 public GameFrame() throws Exception { mario = new Mario(this); mario.start(); Map mp= new Map(); bg = new BackgroundImage(); //窗体重绘线程 new Thread(){ public void run(){ while(true){ //重绘窗体 repaint(); //检查子弹是否出界 checkBoom(); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); map=mp.readMap(); //读取地图,并配置地图 for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[0].length; j++) { //读取到的是1,画砖头 if(map[i][j]==1){ brick = new Pipe(j*30,i*30,30,30,new ImageIcon("image/brick.png").getImage()); eneryList.add(brick); } //读到2画金币 if(map[i][j]==2){ cion = new Pipe(j*30,i*30,30,30,new ImageIcon("image/coin_brick.png").getImage()); eneryList.add(cion); } //读到3画水管 if(map[i][j]==3){ pipe = new Pipe(j*30,i*30,60,120,new ImageIcon("image/pipe.png").getImage()); eneryList.add(pipe); } } } //设置背景音乐 com.huaxin.music.Util.startMusic("music/bg1.wav"); } public void initFrame(){ //设置窗体相关属性 this.setSize(800,450); this.setTitle("山寨版超级玛丽"); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(3); this.setVisible(true); //该窗体添加键盘监听 KeyListener kl = new KeyListener(this); this.addKeyListener(kl); } public void paint(Graphics g) { //利用双缓冲画背景图片和马里奥 BufferedImage bi =(BufferedImage)this.createImage(this.getSize().width,this.getSize().height); Graphics big =bi.getGraphics(); big.drawImage(bg.img, bg.x, bg.y, null); for (int i = 0; i 800){ boomList.remove(i); } } } } [java] view plain copy print?在CODE上查看代码片派生到我的代码片。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.