毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc

上传人:laozhun 文档编号:2393573 上传时间:2023-02-17 格式:DOC 页数:129 大小:573.01KB
返回 下载 相关 举报
毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc_第1页
第1页 / 共129页
毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc_第2页
第2页 / 共129页
毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc_第3页
第3页 / 共129页
毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc_第4页
第4页 / 共129页
毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)J2SE泡泡堂游戏制作(代码内容) .doc(129页珍藏版)》请在三一办公上搜索。

1、J2SE泡泡堂游戏制作(代码内容) 学生姓名院系名称专业名称班 级学 号指导教师 目录1. window包311 GameMain类312 GameMenu类513 GameStart类72. sprite包921 BigBubble类922 Bubble类1623 DrawItem类2824 GameSprite类3225 GameTime类3626 Player类403. control包6031 ControlGameMain类6032 ControlGameMenu类8033 ControlGameStart类8734 ControlHelp类9135 ControlMusic类943

2、6 ControlSelectMap类9637 ControlTeam类1004. util包10241 DrawMap类10242 FileControl类10743 FrameSetting类10944 GameImage类11145 GameMusic类12146 GameProperty类12547 MapTools类1271. window包11 GameMain类package com.lovo.popot.window;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.

3、swing.JFrame;import javax.swing.JPanel;import com.lovo.popot.control.ControlGameMain;import com.lovo.popot.sprite.GameSprite;import com.lovo.popot.util.FrameSetting;/* * 显示游戏界面的窗口类 * author 刘胜利 * version 1.0 * 2007-4-4创建 */public class GameMain extends JFrame/* * 默认序列化ID:1L */private static final lo

4、ng serialVersionUID = 1L;/* * 判断选择地图的字符串 */private String selectedMap;/* * 构造方法 * param selectedMap - 选择地图的字符串 */public GameMain(String selectedMap) this.selectedMap = selectedMap;init();/* * 初始化窗口属性 */private void init() setCursor(FrameSetting.cursor);createContent();setIconImage(GameSprite.icon);s

5、etSize(800,600);FrameSetting.setCenter(this);setUndecorated(true);setTitle(泡泡堂);setVisible(true);/* * 加入容器面板 */private void createContent() final JPanel panel = new ControlGameMain(this);this.getContentPane().add(panel);/为当前窗口加入键盘监听事件(ControlGameMain)panel).addListener();this.addMouseListener(new Mo

6、useAdapter()public void mouseClicked(MouseEvent e) int getX = e.getX();int getY = e.getY();if(getX650&getX555&getY586)(ControlGameMain)panel).dispose();dispose();new GameMenu(););/* * 从本类中获得选择地图的字符串 * return 返回被选择的地图,通过该字符串来确定加载的地图. */public String getSelectedMap()return selectedMap;/*/ * param args

7、/ */public static void main(String args) /new GameMain(海盗地图);/12 GameMenu类package com.lovo.popot.window;import java.applet.AudioClip;import java.awt.CardLayout;import java.awt.MediaTracker;import java.awt.event.WindowEvent;import javax.swing.JFrame;import javax.swing.JPanel;import com.lovo.popot.con

8、trol.ControlGameMenu;import com.lovo.popot.control.ControlHelp;import com.lovo.popot.control.ControlSelectMap;import com.lovo.popot.control.ControlTeam;import com.lovo.popot.sprite.GameSprite;import com.lovo.popot.util.FrameSetting;/* * 显示菜单界面的类. * author 白德柯 * version 1.0 * 2007-4-4创建 */public clas

9、s GameMenu extends JFrame/* * 默认序列化ID:1L */private static final long serialVersionUID = 1L;/* * 图象跟踪器类对象 */private MediaTracker tracker;/* * 卡片布局管理器对象 */private CardLayout card;/* * 音乐播放器类对象,主要用于控制停止音乐的播放 */private AudioClip audio;/* * 构造方法 */public GameMenu()init();private boolean isDispose;/* * 在窗

10、口容器面板上添加其他容器 */private void createContent() final JPanel jpanel = (JPanel)this.getContentPane();ControlGameMenu init = new ControlGameMenu(this);ControlHelp help = new ControlHelp(this);ControlSelectMap gameStart = new ControlSelectMap(this);ControlTeam team = new ControlTeam(this);card = new CardLa

11、yout();jpanel.setLayout(card);init.addLabel();help.addLabel();gameStart.addLabel();team.addLabel();jpanel.add(init,title);jpanel.add(gameStart,gamestart);jpanel.add(help,help);jpanel.add(team,team);card.show(jpanel, title);/* * 初始化窗口属性 */private void init()setCursor(FrameSetting.cursor);tracker = ne

12、w MediaTracker(this);createContent();setIconImage(GameSprite.icon);int insets = FrameSetting.insets;setSize(insets1 + insets3 + 800,insets0 + insets2 + 600);FrameSetting.setCenter(this);setResizable(false);setTitle(泡泡堂);setVisible(true);/* * 获得MediaTraker类对象 * return 返回MediaTraker类的对象 */public Media

13、Tracker getMediaTracker()return tracker;/* * 获得当前窗口的布局管理器 * return 返回当前窗口的布局管理器 */public CardLayout getCardLayout()return card;public void setAudioClip(AudioClip audio)this.audio = audio;public AudioClip getAudioClip()return audio;public void dispose()this.isDispose = true;super.dispose();public boo

14、lean getDispose()return isDispose;/* 关闭窗口,释放内存 * see javax.swing.JFrame#processWindowEvent(java.awt.event.WindowEvent) */protected void processWindowEvent(WindowEvent e) if (e.getID() = WindowEvent.WINDOW_CLOSING)System.exit(0);13 GameStart类package com.lovo.popot.window;import java.awt.event.MouseAd

15、apter;import java.awt.event.MouseEvent;import java.awt.event.WindowEvent;import javax.swing.JFrame;import com.lovo.popot.control.ControlGameStart;import com.lovo.popot.sprite.GameSprite;import com.lovo.popot.util.FrameSetting;/* * 启动画面的窗口 * * author 刘胜利 * version 1.0 * 2007-4-2创建 */public class Game

16、Start extends JFrame /* * 默认序列化ID:1L */private static final long serialVersionUID = 1L;/* * 用于显示启动界面的JPanel面版类对象 */private ControlGameStart startScene;public GameStart() init();/* * 初始化窗口的方法 */private void init() FrameSetting.setCursor();setCursor(FrameSetting.cursor);startScene = new ControlGameSta

17、rt(this);this.getContentPane().add(startScene);setIconImage(GameSprite.icon);setSize(800,600);FrameSetting.setCenter(this);this.addMouseListener(new MouseAdapter()public void mouseClicked(MouseEvent e) startScene.dispose(););setResizable(false);setTitle(泡泡堂);setVisible(true);FrameSetting.saveMarinSi

18、ze(this);/* * 程序入口 * param args */public static void main(String args) new GameStart();/* 关闭窗口,释放内存 * see javax.swing.JFrame#processWindowEvent(java.awt.event.WindowEvent) */protected void processWindowEvent(WindowEvent e) if (e.getID() = WindowEvent.WINDOW_CLOSING)System.exit(0);2. sprite包21 BigBub

19、ble类package com.lovo.popot.sprite;import java.applet.AudioClip;import java.awt.Component;import java.awt.Graphics;import java.awt.Image;import java.util.List;import com.lovo.popot.control.ControlGameMain;/* * 大泡泡类。大泡泡即当角色碰到泡泡的水柱后那么该角色会在地图上消失, * 并在角色的当前位置出现大泡泡。经过一段时间等待后,大泡泡爆炸,表示 * 角色死亡,游戏结束。 * author

20、 刘胜利 * version 1.0 * 2007-4-10创建 */public class BigBubble implements GameSprite /* * 绘制图片的容器 */private Component component;/* * 大泡泡出现后到大泡泡爆炸的一组图片 */private Image deadImages;/* * 角色的X坐标 */private int playerX = -1;/* * 角色的Y坐标 */private int playerY = -1;/* * 在大泡泡出现前的图片索引号 */private int cryIndex;/* * 大泡

21、泡出现的图片索引号 */private int bigPopoIndex;/* * 大泡泡爆炸后的图片索引号 */private int deadIndex;/* * 大泡泡结束时的标记 */private boolean bigPopoOver;/* * 大泡泡开始时的标记 */private boolean bigPopoStart;/* * 大泡泡爆炸时的标记 */private boolean deadStart;/* * 释放资源的标记 */private boolean isDispose;/* * 角色类的对象集合 */private List playerList;/* * 角

22、色类的对象 */private GameSprite player;/* * 地图的二维数组 */private int mapArray;/* * 设置是否爆炸的标记,该字段用于其他类来对其进行设置。 * 比如当大泡泡还在等待过程中,一角色碰到该大泡泡,那么该 * 大泡泡就会立即爆炸。 */public static boolean isBomb;/* * 构造方法 * 覆盖默认的构造器 * param component - 绘制图片的容器 * param player - 角色类的对象 * param deadImages - 大泡泡出现后到大泡泡爆炸的一组图片 */public Big

23、Bubble(Component component, GameSprite player,Image deadImages) ponent = component;this.deadImages = deadImages;this.player = player;Thread thread = new Thread(this);thread.start();/* (non-Javadoc) * see com.lovo.popot.sprite.GameSprite#draw(java.awt.Graphics) */public void draw(Graphics g) if (!big

24、PopoStart) g.drawImage(deadImages2cryIndex, playerX - 4, playerY - 24,component); else if (bigPopoOver) if (!deadStart)g.drawImage(deadImages0bigPopoIndex, playerX - 16,playerY - 32, component);elseg.drawImage(deadImages1deadIndex, playerX - 4,playerY - 60, component); else g.drawImage(deadImages2cr

25、yIndex, playerX - 4, playerY - 24,component);g.drawImage(deadImages0bigPopoIndex, playerX - 20,playerY - 29, 78, 78, component);/* (non-Javadoc) * see com.lovo.popot.sprite.GameSprite#setMapArray(int) */public void setMapArray(int mapArray) this.mapArray = mapArray;/* (non-Javadoc) * see com.lovo.po

26、pot.sprite.GameSprite#setObject(java.util.List) */SuppressWarnings(unchecked)public void setObject(List playerList) this.playerList = playerList;/* (non-Javadoc) * see com.lovo.popot.sprite.GameSprite#setRowImage(int) */public void setRowImage(int ImageRow) /* * 传递角色的X坐标 */public void setX(int playe

27、rX) this.playerX = playerX;/* * 传递角色的Y坐标 */public void setY(int playerY) this.playerY = playerY;public void run() while (true) if(isDispose)return;if (playerX 0 | playerY 0) try Thread.sleep(50); catch (InterruptedException e) e.printStackTrace(); else break;for (int i = 0; i 8; i+) component.repain

28、t();if (cryIndex = 1)cryIndex = 0;elsecryIndex = 1;if (i = 4) bigPopoStart = true;bigPopoIndex+;try Thread.sleep(40); catch (InterruptedException e) bigPopoIndex = 3;for (int i = 0; i 100; i+) if(isDispose)return;mapArray(int) Math.round(double) playerY - 40) / 40d)(int) Math.round(double) playerX -

29、 20) / 40d) = 100;try Thread.sleep(40); catch (InterruptedException e) if (isBomb) break;bigPopoOver = true;for (int i = 0; i 7) deadStart = true;deadIndex+;if (deadIndex = 10)break;bigPopoIndex+;component.repaint();try Thread.sleep(50); catch (InterruptedException e) if(!(Player)player).getAni()pla

30、yerList.remove(player);(Player)player).setDead(true);component.repaint();(ControlGameMain) component).setGameOver(true);public void dispose() this.isDispose = true;/* (non-Javadoc) * see com.lovo.popot.sprite.GameSprite#setColumnImage(int) */public void setColumnImage(int Column) /* (non-Javadoc) *

31、see com.lovo.popot.sprite.GameSprite#getX() */public int getX() return 0;/* (non-Javadoc) * see com.lovo.popot.sprite.GameSprite#getY() */public int getY() return 0;22 Bubble类package com.lovo.popot.sprite;import java.awt.Component;import java.awt.Graphics;import java.awt.Image;import java.util.List;

32、import com.lovo.popot.control.ControlGameMain;import com.lovo.popot.control.ControlMusic;/* * 泡泡类。 * 功能:玩家按下放泡泡的键时,创建该类对象。在地图上绘制一个泡泡 * 该泡泡会经过4秒左右的等待,随即爆炸,产生爆炸效果。如果在爆炸 * 的范围内存在箱子,那么会炸开该箱子。并随机产生道具。如果爆炸范围 * 内有角色,那么该角色会变成大泡泡。如果有不可炸开的障碍物,那么会 * 阻隔该方向上的泡泡水柱。如果周围有道具,那么此道具消失。 * author 刘胜利 * version 1.0 * 200

33、7-4-6创建 */public class Bubble implements GameSprite/* * 绘制图片的容器 */private Component component;/* * 泡泡等待时的图片数组 */private Image bubble;/* * 泡泡的爆炸效果图片数组 */private Image bubbleExplosion;/* * 泡泡在地图上的X坐标位置 */private int popoX = -1;/* * 泡泡在地图上的Y坐标位置 */private int popoY = -1;/* * 泡泡图片的索引号 */private int popo

34、Index;/* * 泡泡的威力 */private int power;/* * 泡泡左边方向的长度 */private int leftLength;/* * 泡泡右边方向的长度 */private int rightLength;/* * 泡泡上边方向的长度 */private int topLength;/* * 泡泡下边方向的长度 */private int bottomLength;/* * 泡泡水柱增长的计数器 */private int addLength = 1;/* * 泡泡的水柱头所代表的图片索引号 */private int popoHead;/* * 泡泡的水柱中间所

35、代表的图片索引号 */private int popoBody = 3;/* * 该值代表此类泡泡对象是哪个角色放出来的 */private int playerPopo;/* * 地图的二维数组 */private int mapArray;/* * 判断泡泡是否爆炸的标记 */private boolean isExplosion;/* * 泡泡是否爆炸结束的标记 */private boolean isOver;/* * 释放资源 */private boolean isDispose;/* * 泡泡水柱是否向左增长的标记 */private boolean addLeft = true

36、;/* * 泡泡水柱是否向右增长的标记 */private boolean addRight = true;/* * 泡泡水柱是否向上增长的标记 */private boolean addTop = true;/* * 泡泡水柱是否向下增长的标记 */private boolean addBottom = true;/* * 泡泡的对象集合 */private List bubbleList;/* * 构造方法 * 覆盖默认构造器 * param component - 绘制图片的容器 * param bubble - 泡泡等待时的图片数组 * param bubbleExplosion -

37、泡泡在地图上的X坐标位置 * param power - 泡泡的威力 * param playerPopo - 该值代表此类泡泡对象是哪个角色放出来的 */public Bubble(Component component,Image bubble,Image bubbleExplosion,int power,int playerPopo)ponent = component;this.bubble = bubble;this.bubbleExplosion = bubbleExplosion;this.power = power;this.playerPopo = playerPopo;Thread thread = new Thread(this);thread.start();/* (non-Javadoc) * see com.lovo.popot.sprite.GameSprite#setMapArray(int) */public void setMapArray(int mapArray) this.mapArray = mapArray;/* * 设置泡泡在地图上的X坐标位置 */public void setX(int popoX) this.popoX = popoX;/* * 设置泡泡

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号