在中兴软件技术从事手机游戏开发的实习报告
一、实习目的
熟悉j2me开发手机游戏的环境和配置,学习java程序语言并能够利用java进行软件开发,能够实现一个简单的java手机游戏,通过培训增强分析程序源代码及编程的能力。
二、实习任务
学习j2me语言及java手机游戏的开发和设计,基本的理论原理,并在培训后以小组的形式完成一个小型的java手机游戏程序。
三、实习时间及地点
实习时间:2009年2 月23日——2009年3月1日 实习地点: 信科s311b
四、实习内容及过程
实习内容:j2me手机游戏开发
实习过程:
1.游戏的准备工作
通过培训学习了j2me开发工具包中几个常用类的使用方法和java的基本语法和相关知识,并通过具体的操作来加深对函数的理解,也增强了个人动手能力。同时跟着老师,学会了j2me环境的配置,知道了怎样一步步地实现游戏的功能。
在自己编写游戏之前,先做好相关的游戏准备工作。主要要在自己的电脑上对开发环境进行安装和配置,同时要确定本小组设计的游戏题目,针对所设计的游戏要实现的功能找到相关的素材,比如.png类型的图片。
2.游戏的设计思路
通过参考其他游戏的规则,将自己的游戏设计为一个射击游戏,即:先登陆游戏,然后可以在无限的时间内将随机出现的敌机击落,并且在攻击敌机的时候不能够让敌方的子弹击中或不能与敌机相撞,否则玩家生命值减1及子弹数量减少一倍,直到玩家生命值为0,这时游戏结束。如果击中一定数目的敌机,将进入下一关。在敌机中有少数的敌机带有升级包,被击中后将成为玩家升级子弹和增加生命值的升级包,玩家拾到后子弹的数量将增加一倍(但最多只能够增加到原有子弹的三倍),同时生命值增加一点。在游戏中共设置了四种敌机类型,两种普通的敌机和两种高级敌机。游戏中将根据玩家击落的敌机数增加敌机移动的速度,同时对逃脱的敌机进行统计,如果超过一定数量的敌机逃脱则游戏结束。
3.游戏的具体实现
test.java – 主类,运行在手机平台上必须要继承middle父类,及调用相应的控制游戏运行方法。
mycanvas.java – 游戏显示及调用类,其中定义了各种游戏中需要的变量和创建其他类的实例。
player.java – 玩家类,其中定义了玩家的位置及运动轨迹。
enemy.java – 敌机类,定义了敌机的类型,敌机的位置,敌机的运行轨迹。
enemy类的实现和注释:
import javax.microedition.lcdui.*;
public class enemy {
private int x, y;
private int type;// 设置敌人的图片格式
private boolean isblod; // 掉血的敌机,如果被击落将变为玩家的'子弹升级值
public boolean isblod() {
return isblod;
}
/**
* 设置敌人被击中后是否掉落升级玩家子弹的物品
*
* @param isblod
*/
public void setblod(boolean isblod) {
this.isblod = isblod;
}
image img;
public enemy(int xx, int yy, int type) {
this.x = xx;
this.y = yy;
this.type = type;
stringbuffer s = new stringbuffer();
int i = mycanvas.time % 3;
string str;
try {
// 根据不同的类型导入不同的敌人图片
switch (type) {
case 0:
s.append("/plan0");
s.append(i);
s.append(".png");
str = s.tostring();
img = image.createimage(str);// plan 0
break;
case 1:
s.append("/plan0");
s.append(i);
s.append(".png");
str = s.tostring();
img = image.createimage(str);// plan 1
break;
case 2:
img = image.createimage("/boss0.png");// boss 0
break;
case 3:
s.append("/plan1");
s.append(i);
s.append(".png");
str = s.tostring();
img = image.createimage(str);// plan 1
break;
case 4:
s.append("/plan1");
s.append(i);
s.append(".png");
str = s.tostring();
img = image.createimage(str);// plan 2
case 5:
img = image.createimage("/boss1.png");// boss 1
case 6:
img = image.createimage("/blod.png");// blod
break;
case 7:
img = image.createimage("/explored.png");// explored
break;
}
} catch (exception e) {
system.out.println("设置敌人的图片不能为空");
}
}
public void draw(graphics g) {
g.drawimage(img, x, y, 0);
}
public void cycle() {
switch (gettype()) {
case 0:
y += gety() % 1 + 1;
break;
case 1:
y += gety() % 2 + 1;
break;
case 2:
y += gety() % 2 + 2;
break;
case 3:
y += gety() % 2 + 3;
break;
case 4:
y += gety() % 2 + 5;
break;
case 5:
y += gety() % 2 + 8;
break;
case 6:
y += gety() % 1 + 1;
break;
}
}
/**
* 设置敌人的x坐标
*
* @param xx
*/
public void setx(int xx) {
x = xx;
}
/**
* 得到敌人当前的x坐标
*
* @return
*/
public int getx() {
return x;
}
/**
* 设置敌人的y坐标
*
* @param yy
*/
public void sety(int yy) {
y = yy;
}
/**
* 得到敌人当前的y坐标
*
* @return
*/
public int gety() {
return y;
}
/**
* 得到敌人类型
*
* @return
*/
public int gettype() {
return type;
}
/**
* 设置敌人类型
*
* @param type
*/
public void settype(int type) {
this.type = type;
}
}
ball.java – 子弹类,其中定义了子弹的位置及子弹运行轨迹
五、实习收获与体会
通过这几天的培训,我逐步熟悉了java游戏开发,也深刻的体会到了要实现一个游戏程序的困难,在游戏中一个很简单的动作,往往涉及到一系列的代码。总的来说,我学会了怎么配置基于j2me的java游戏开发环境,以及对简单的类之间的继承,接口的连接等,了解了基本类的定义和对象属性的设置;也让我学到了一些基本的游戏设计和开发方法,并对每个游戏动作如何在代码中实现出来有了一定了解。
这次通过参加培训,然后自己动手来完成一个java游戏的开发,增强了我们的动手能力,让我们可以自主的去构思要实现的功能以及需要的函数、类等,提高了我们对于程序的总体把握能力。在设计游戏和编写代码的时候,由于刚开始对游戏的运行规则没有定义好,在写代码的时候做了几次修改,这增加了开发所要的时间,降低了开发效率。开始定义的碰撞也不太合理,使得子弹离敌机距离稍大也算打中敌机,看起来就是子弹没有打中,敌机也被歼灭了,后来进行了调整。在整个游戏的开发过程中,我认识到程序的调试和改错方面有许多的技巧,例如段首的提示符给予的信息以及被特殊标出的下划线,都可以作为参考。代码开发是一项比较烦琐的工作,长久就会失去耐心,就会容易出错,所以要做到耐心和细心,才能够减少错误,进而减少调试所需的时间。
六、致谢
非常感谢郑老师在培训的时候给予我们的帮助!在这次培训中,不但让我学习了如何编写java程序和利用j2me开发手机游戏,让我对java游戏开发有了初步的认识;更让我学习到如何去逐步设计一个游戏,对游戏开发有了较深的认识,并通过小组协作完成了小游戏的编写,这都有赖于老师的细心指导。在此,再次向您表示我衷心的感谢!
七、指导教师评语
八、评阅人意见
河南高考排名195560左右排位理科可以上哪些大学,具体能上什么大学
吉林外国语大学和湘潭大学兴湘学院哪个好 附对比和区别排名
江西工商职业技术学院在黑龙江高考历年录戎数线(2024届参考)
甘肃高考排名5480左右排位理科可以上哪些大学,具体能上什么大学
四川文化艺术学院和天津城建大学哪个好 附对比和区别排名
江西高考排名71510左右排位理科可以上哪些大学,具体能上什么大学
文秘的实习报告集锦7篇
有关服装类实习报告8篇
实用的财务实习报告三篇
设计实习报告合集7篇
文秘的实习报告集锦7篇
有关服装类实习报告8篇
实用的财务实习报告三篇
自动化生产实习报告合集10篇
有关物流大学生实习报告四篇
酒类实习报告范文锦集九篇
齐齐哈尔工程学院在新疆高考招生计划人数专业代码(2024参考)
宁夏工商职业技术学院在河南高考招生计划人数专业代码(2024参考)
河北高考排名184970左右排位历史可以上哪些大学,具体能上什么大学
湖北高考排名174600左右排位物理可以上哪些大学,具体能上什么大学
考福州外语外贸学院要多少分宁夏考生 附2024录取名次和最低分
湖南师范大学在云南高考招生计划人数专业代码(2024参考)
广东高考排名247430左右排位物理可以上哪些大学,具体能上什么大学
陕西青年职业学院在宁夏高考历年录戎数线(2024届参考)
安徽文达信息工程学院的审计学专业排名怎么样 附历年录戎数线
安徽高考排名263910左右排位理科可以上哪些大学,具体能上什么大学
考安顺学院要多少分广东考生 附2024录取名次和最低分
广东高考排名94120左右排位物理可以上哪些大学,具体能上什么大学
四川高考排名6710左右排位理科可以上哪些大学,具体能上什么大学
考洛阳科技职业学院要多少分甘肃考生 附2024录取名次和最低分
福建高考排名46830左右排位物理可以上哪些大学,具体能上什么大学
重庆机电职业技术大学的数控技术专业排名怎么样 附历年录戎数线
郑州升达经贸管理学院和辽宁工业大学哪个好 附对比和区别排名
赣州职业技术学院和扬州工业职业技术学院哪个好 附对比和区别排名
江西外语外贸职业学院在内蒙古高考历年录戎数线(2024届参考)
四川高考排名14260左右排位理科可以上哪些大学,具体能上什么大学
高校生施工实习报告
电脑维修实习报告范文
关于大学生银行实习报告三篇
教师实习报告范文(通用三篇)
关于水利工程的实习报告三篇
设计实习报告合集7篇
机械手实习报告
关于大三暑期的实习报告
财务实习报告范文10篇
会计类毕业实习报告三篇
大学生建筑学专业实习报告
大学生酒店餐饮部实习报告(精选四篇)
关于肯德基实习报告
工厂实习报告自我鉴定五篇
工程测绘实习报告四篇