JAVA实验报告18-“打地鼠”游戏程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA 实验(18)
课程名称:Java 面向对象程序设计学院:管理学院专业班级:信息管理与信息系统6)班
学号:3 108006406 ___________________
姓名:张钟权
任课教师:聂小东
2010年06月15日
管理学院信息管理与信息系统专业08信管6班_______ 组
学号3108006406姓名张钟权协作者 ______ 教师评定_______________ 实验题目“打地鼠”游戏程序设计
-、实验目的与要求
(1) 实验目的:通过编写调试“打地鼠”游戏程序,分析了解“打地鼠” 游
戏的功能实现过程,掌握游戏设计的有关知识。
(2) 实验要求:按照实验教程的要求完成“打地鼠”游戏程序的编写和调试
工作。
二、实验方案
(1) HammerSprite 类:
①HammerSprite (Image image, int frameWidth,int frameHeight)方法:
锤子精灵的构造函数,设置精灵贴片图像及精灵的宽度与高度;
②moveTo (int x,int y)方法:为游戏操控者控制手机的按键,移动锤
子精灵到指定位置。
(2) MouseSprite类:
①MouseSprite (Image image, int frameWidth,int frameHeight) 方
法: 地鼠精灵的构造函数,设置精灵贴片图像及精灵的宽度与长度;
②moveTo (int s)方法:根据随机数s,移动地鼠精灵到指定的坐标位
(3) MainCanvas类:
①MainCanvas ()方法:对游戏进行初始化,设置游戏的背景图像及
背景音乐,并实例化游戏精灵;
②gameStart ()方法:游戏开始,加载地鼠精灵,让其随机现身。
(4) BeatSusliksMIDIet 类:执行程序的入口,定义了 “开始游戏”和“退
出游戏”按钮地方法。
三、实验结果和数据处理
import java.io.*; import java.util.*; import javax.microeditio n.l cdui.*; import javax.microeditio n.l cdui.game.*; import javax.microediti on. media.*; import javax.microediti on. media.c on trol.*; public class MainCan vas exte nds GameCa nvas impleme nts Runn able { private int level;
private long Score;
musicPlayer, musicPlayerl;
//构造函数,进行一些初始化的设置 public MainCan vas()
{
super(true);
//
frameDeleay = 33;
//
beg in = 0;
//得分回零
Score = 0;
try
{
//游戏背景图像 bkp = lmage.createlmage("/bk.p ng");
//游戏开始封面 private Thread private boolea n private int private int private Image gameOverImg; private HammerSprite
private MouseSprite r
t;
sleep ing;
beg in; frameDeleay;
bkp, hammerimage,
hammerSprite;
startimg,
mouseimage,
private Player
startlmg = lmage.createlmage("/start.p ng");
//锤子系列图像,构造锤子精灵
hammerimage = lmage.createlmage("/chuizi.p ng");
//地鼠锤子系列图像,构造地鼠精灵
mouselmage = lmage.createlmage("/shu.p ng");
//地鼠贴片的宽和高
mouseSprite = new MouseSprite( mouselmage, 40, 30 );
//锤子贴片的宽和高
hammerSprite = new HammerSprite( hammerlmage, 40, 30 );
//游戏结束画面
gameOverlmg = lmage.createlmage("/gameover.p ng");
}
catch(IOExcepti on e)
{ }
try {
// 定义声音文件的输入流
In putStream is = this.getClass().getResourceAsStream("Music.mid");
//建立midi文件媒体播放器
musicPlayer = Man ager.createPlayer(is, "audio/midi");
// 让播放器对声音流进行预提取
musicPlayer.prefetch();
// 设置声音的播放次数(无限循环)
musicPIayer.setLoopCo un t(-1);
// 启动播放器
musicPlayer.start();
}
catch (lOExcepti on ioe)
{}
catch (MediaExcepti on me)
{}
}
//精灵碰撞检测
private void checkSpritEve nt()
{
if(hammerSprite.collidesWith(mouseSprite, true)) {
mouseSprite.();
//加分
Score+=100;
//手机按键对应锤子精灵的坐标位置:
private void update()
{
//获取手机按键的键值
int keySelect = this.getKeyStates(); switch (())