Java ME综合实训报告
更新时间:2024-07-05 12:22:01 阅读量: 综合文库 文档下载
- java推荐度:
- 相关推荐
Java ME应用开发实训
实训报告
姓名 学号 系部 专业 指导教师 完成时间 2012 年 6 月 3 0日
Java ME综合实训报告
任务1:重构项目名称为GoToHell;将资源文件置于cn.njcit.res包中;将源程序文件置于cn.njcit.src包中。 实现说明:
1、打开NETBEANS软件,接着文件—>打开项目—>找到原文件—>确定—>
点击项目名称—>右击重命名,修改为GoToHell;
2、在源包上右击新建—>java包—>输入新的包名cn.njcit.res,复制缺省包内的
图片,后将空文件的缺省包删除;
3、在源包上右击新建—>java包—>输入新的包名cn.njcit.src,复制源程序至
cn.njcit.src即可。
任务2:去除现有提示闪屏,添加一个有意义的闪屏。 实现说明:
1. 去除现有提示闪屏:将gameCanv.java中得下面代码删除。
private String GAME_WELCOME=\欢迎使用\ private String GAME_AUTHOR=\ private String GAME_NAME=\的游戏\
private String GAME_INSTRUCT=\软键打开菜单\删除gameGanv构造方法中代码:
g.setColor(0,0,0);
g.drawString(GAME_WELCOME,88,70,Graphics.HCENTER|Graphics.TOP);
g.drawString(GAME_AUTHOR+GAME_NAME,88,100,Graphics.HCENTER|Graphics.TOP);
·1·
Java ME综合实训报告
g.drawString(GAME_INSTRUCT,88,130,Graphics.HCENTER|Graphics.TOP);
2. 添加有意义的闪屏核心代码如下:
private SplashScreen splashScreen;
public SplashScreen getSplashScreen() { if (splashScreen == null) { // write pre-init user code here splashScreen = new SplashScreen(dp); splashScreen.setTitle(\ splashScreen.setCommandListener(this); splashScreen.setFullScreenMode(true); splashScreen.setImage(getWelcomeImage()); splashScreen.setTimeout(1000);
splashScreen.removeCommand(SplashScreen.DISMISS_COMMAND); }
return splashScreen; }
private Image welcomeImage; public Image getWelcomeImage() { if (welcomeImage == null) { // write pre-init user code here try {
welcomeImage=Image.createImage(\
}
catch (java.io.IOException e) {
e.printStackTrace(); } }
return welcomeImage; }
运行结果如下图所示:
·2·
Java ME综合实训报告
任务3:使用Canvas添加一个游戏菜单,含新游戏、继续游戏、设置、排名、帮助。
实现说明:添加一个类MenuCanvas 代码如下: public class MenuCanvas extends Canvas { //selected变量标记了焦点位置 private int selected = 0;
public static final int[] OPTIONS = {0, 1, 2, 3, 4, 5};
public static final String[] LABELS = {\新游戏\继续游戏\设置\排行榜\帮助\退出\ private Image btnNorImage; private Image btnSelImage; private Font font; private int btnWidth; private int btnHeight; private int width; private int height;
·3·
Java ME综合实训报告
private MainRunner mainRunner;
public MenuCanvas(MainRunner mainRunner) { this.mainRunner = mainRunner; selected = OPTIONS[0]; //计算菜单选项的长度和高度值
font=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN, 16); try {
btnNorImage = Image.createImage(\ btnSelImage = Image.createImage(\ btnWidth = btnNorImage.getWidth(); btnHeight = btnNorImage.getHeight(); width = getWidth(); height = getHeight(); } catch (IOException ex) { ex.printStackTrace(); } }
public void paint(Graphics g) { //清除屏幕
int color = g.getColor(); g.setColor(162,205, 90);
g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(color); g.setFont(font);
for (int i = 0; i < LABELS.length; i++) { if (i == selected) {
g.setColor(255, 255, 255);
g.drawImage(btnSelImage, (width - btnWidth) / 2, (i + 1) * btnHeight, color); } else {
g.setColor(0, 0, 0);
g.drawImage(btnNorImage, (width - btnWidth) / 2, (i + 1) *
·4·
Java ME综合实训报告
btnHeight, color); }
g.drawString(LABELS[i], (width - btnWidth) / 2 + 10, (i + 1) * btnHeight + 3, color); } }
public void keyPressed(int keyCode) {
//根据用户输入更新selected的值,并重新绘制屏幕 int action = this.getGameAction(keyCode); switch (action) { case Canvas.FIRE: printLabel(selected); break;
case Canvas.DOWN:
selected = (selected + 1) % 6; break; case Canvas.UP: { if (--selected < 0) { selected += 6; } break; } default: break; } repaint(); serviceRepaints(); }
//showNotify()在paint()之前被调用 public void showNotify() {
System.out.println(\ }
·5·
Java ME综合实训报告
private void printLabel(int selected) { switch (selected) { case 0:
mainRunner.newGame(); break; case 1:
mainRunner.resumeGame(); break; case 2:
mainRunner.setting(); break; case 3:
mainRunner.score(\ break; case 4:
mainRunner.help(); break; case 5:
mainRunner.exit(); break; } } }
运行结果如下:
·6·
Java ME综合实训报告
任务4:实现新游戏功能,游戏界面要求在DefaultCldcMsaPhone1满屏显示。 实现说明: 满屏的实现:
1) 修改gameCharObj.java中right和left方法中的148改成240。 if (x > 240) {
x = 240; } 截图如下:
2) 把isDead方法中的if语句改成if(y>320||y<40||gameCharLife<1) 截图如下图所示:
3) 修改图片大小(把bg.png和teeth.png图片大小改为240*320的大小) 实现新游戏功能: public void newGame() { GameRecord.reSet();
GameRecord.elements.addElement(new gameFlatObj(true)); score = 0; gco = null; start();
}
·7·
Java ME综合实训报告
任务5:实现继续游戏功能,要求返回游戏界面后能够继续原来的游戏。 实现说明:
在gameCanv 上添加如下代码: if (!isPause) {
//*************** g.setColor(0xBBFFBB); //画GAME OVER g.fillRect(0, 290, 240, 320); g.setColor(0x804040);
g.setFont(Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, 16));
g.drawString(\ g.drawString(\返回\ g.drawString(\重新开始\ } else {
g.setColor(255, 0, 0);
g.drawString(\已暂停,按 * 键继续\ }
在MainRunner类中添加resumeGame()方法: public void resumeGame() {
System.out.println(\ if (gc == null) { newGame(); }
if (gc.isPause()) { gc.reSume(); dp.setCurrent(gc); } else { newGame(); }
}
·8·
Java ME综合实训报告
在MenuCanvas类中添加如下图所示的代码:
任务6:实现设置功能,可以设置炸弹等Sprite的数量,也可以设置游戏速度等其他元素。 实现说明:
新建个类SettingCanvas,添加如下代码 protected void paint(Graphics g) { int color = g.getColor(); g.setColor(34 ,139 ,34 ); g.setFont(font);
g.drawString(\速度:\ g.drawString(\难度:\ g.setColor(0, 0, 255); for (int i = 0; i < cuSp; i++) { g.fillRect(80 + (i * 10), 55, 20, 8); }
for (int i = 0; i < cuLe; i++) {
g.fillRect(80 + (i * 10), 105, 20, 8); }
g.drawRect(20, 50 * cuSe, 200, 20);
}
//添加键盘事件
public void keyPressed(int KeyCode) { System.out.println(KeyCode); switch (KeyCode) { case -2: cuSe++; if (cuSe == 3) { cuSe = 1; }
·9·
Java ME综合实训报告
break; case -1: cuSe--; if (cuSe == 0) { cuSe = 2; } break; case -4:
if (cuSe == 1) { if (cuSp < maxSp) { cuSp++; } } else {
if (cuLe < maxLe) { cuLe++; } } break; case -3:
if (cuSe == 1) { if (cuSp > 1) { cuSp--; } } else {
if (cuLe > 1) { cuLe--; } } break; case -6:
mainRunner.showMe(); break;
·10·
Java ME综合实训报告
}
GameRecord.GAME_SPEED = cuSp; GameRecord.GAME_LEVEL = cuLe; repaint();
}
运行结果如下:
任务7:游戏分值显示与存储,要求能够根据主Sprite游戏的时间或跳跃版块的数量等因素来记录游戏分值,并在游戏结束后给出玩家用户名输入界面,来存储玩家姓名和分数。 实现说明:没有实现
任务8:游戏排名功能,将分值最高的前5名玩家的姓名和分值显示出来。 实现说明:没有实现 任务9:游戏帮助功能。 实现说明:
新建HelpCanvas类,向里面添加如下代码: package cn.njcit.src;
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Font; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; public class HelpCanvas extends Canvas {
·11·
Java ME综合实训报告
private MainRunner mainRunner; private Font font; private Image gameBg;
public HelpCanvas(MainRunner mainRunner) { this.mainRunner = mainRunner;
font = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, 16);
try {
gameBg = Image.createImage(\ } catch (Exception e) {
} }
protected void paint(Graphics g) { g.drawString(\退出\ int color = g.getColor(); g.setColor(34 ,139 ,34 ); g.drawImage(gameBg, 0, 0, 0); g.setFont(font);
g.drawString(\游戏帮助\
g.drawString(\左右方向键控制小人走动\ g.drawString(\注意不要碰到刺哦——\ }
// 添加键盘事件
public void keyPressed(int KeyCode) { System.out.println(KeyCode); switch (KeyCode) {
case -6:mainRunner.showMe();break; } } }
·12·
Java ME综合实训报告
运行结果如下:
·13·
Java ME综合实训报告
《Java ME
序号 应用开发实训》自评表
分值 自评成绩 重构内容 重构项目名称为GoToHell 1 将资源文件置于cn.njcit.res包中 将源程序文件置于cn.njcit.src包中 去除现有提示闪屏 添加一个有意义的闪屏 使用Canvas添加一个游戏菜单,含新游戏、继续游戏、设置、排名、帮助。 实现新游戏功能 游戏界面要求在DefaultCldcMsaPhone1满屏显示 实现继续游戏功能,要求返回游戏界面后能够继续原来的游戏 实现设置功能,可以设置炸弹等Sprite的数量,也可以设置游戏速度等其他元素 游戏分值显示与存储,要求能够根据主Sprite游戏的时间或跳跃版块的数量等因素来记录游戏分值,并在游戏结束后给出玩家用户名输入界面,来存储玩家姓名和分数。 游戏排名功能,将分值最高的前5名玩家的姓名和分值显示出来。 游戏帮助功能 合计
2 3 4 5 6 7 8 9 ·14·
正在阅读:
Java ME综合实训报告07-05
中国医科大学2015年12月期末考试《系统解剖学》(专科)满分标准答案10-02
试析水利工程施工安全与管理07-06
农作物品种(玉米)区域试验技术规程11-24
2018年上海中考各区一模课外文言文汇编09-13
多媒体演示文稿的设计与制作学习心得体会06-04
超星尔雅中国书法史章节答案03-18
《数据库》练习题及答案06-06
逻辑考点讲解与真题解析以及类型化训练04-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 报告
- 综合
- Java
- 商品房营销代理合同1
- 2014年注册环境影响评价工程师《环境影响评价技术方法》考前突破
- 月潭水库施工组织设计
- 操雷系统与试验技术
- 5月月考三角恒等变换测试题
- XX公司新建1万吨恒温库工程项目可行性研究报告 - 图文
- 电子政务形成性考核作业2答案2011
- 企业所得税考题及答案
- “传递青春正能量,文明上网”主题班会总结
- 战前动员解放军战前动员优秀讲话稿
- XX年公务员个人工作总结 - 1
- 国家安全生产监督管理总局令45号令
- 建筑环境与能源应用工程专业实习报告 - 图文
- 工程热力学考试题集锦1(分析,含答案)
- 装修施工方案(修改后)
- 议论文阅读指导
- 六年级数学测试卷四
- 脚手架作业安全管理规定
- 81页精品2019最新北师大版小学英语五年级下教案 - 图文
- 建设局XX年政风行风评议工作实施方案