关于在中兴软件技术从事手机游戏开发实习报告.docx
《关于在中兴软件技术从事手机游戏开发实习报告.docx》由会员分享,可在线阅读,更多相关《关于在中兴软件技术从事手机游戏开发实习报告.docx(14页珍藏版)》请在冰豆网上搜索。
关于在中兴软件技术从事手机游戏开发实习报告
关于在中兴软件技术从事手机游戏开发实习报告
一、实习目的
熟悉j2me开发手机游戏的环境和配置,学习java程序语言并能够利用java进行软件开发,能够实现一个简单的java手机游戏,通过培训增强分析程序源代码及编程的能力。
二、实习任务
学习j2me语言及java手机游戏的开发和设计,基本的理论原理,并在培训后以小组的形式完成一个小型的java手机游戏程序。
三、实习时间及地点
四、实习内容及过程
1.游戏的准备工作
通过培训学习了j2me开发工具包中几个常用类的使用方法和java的基本语法和相关知识,并通过具体的操作来加深对函数的理解,也增强了个人动手能力。
同时跟着老师,学会了j2me环境的配置,知道了怎样一步步地实现游戏的功能。
在自己编写游戏之前,先做好相关的游戏准备工作。
主要要在自己的电脑上对开发环境进行安装和配置,同时要确定本小组设计的游戏题目,针对所设计的游戏要实现的功能找到相关的素材,比如.png类型的图片。
2.游戏的设计思路
通过参考其他游戏的规则,将自己的游戏设计为一个射击游戏,即:
先登陆游戏,然后可以在无限的时间内将随机出现的敌机击落,并且在攻击敌机的时候不能够让敌方的子弹击中或不能与敌机相撞,否则玩家生命值减1及子弹数量减少一倍,直到玩家生命值为0,这时游戏结束。
如果击中一定数目的敌机,将进入下一关。
在敌机中有少数的敌机带有升级包,被击中后将成为玩家升级子弹和增加生命值的升级包,玩家拾到后子弹的数量将增加一倍(但最多只能够增加到原有子弹的三倍),同时生命值增加一点。
在游戏中共设置了四种敌机类型,两种普通的敌机和两种高级敌机。
游戏中将根据玩家击落的敌机数增加敌机移动的速度,同时对逃脱的敌机进行统计,如果超过一定数量的敌机逃脱则游戏结束。
3.游戏的具体实现
test.java–主类,运行在手机平台上必须要继承middle父类,及调用相应的控制游戏运行方法。
mycanvas.java–游戏显示及调用类,其中定义了各种游戏中需要的变量和创建其他类的实例。
player.java–玩家类,其中定义了玩家的位置及运动轨迹。
enemy.java–敌机类,定义了敌机的类型,敌机的位置,敌机的运行轨迹。
enemy类的实现和注释:
importjavax.microedition.lcdui.*;
publicclassenemy{
privateintx,y;
privateinttype;//设置敌人的图片格式
privatebooleanisblod;//掉血的敌机,如果被击落将变为玩家的子弹升级值
publicbooleanisblod(){
returnisblod;
}
/**
*设置敌人被击中后是否掉落升级玩家子弹的物品
*
*@paramisblod
*/
publicvoidsetblod(booleanisblod){
this.isblod=isblod;
}
imageimg;
publicenemy(intxx,intyy,inttype){
this.x=xx;
this.y=yy;
this.type=type;
stringbuffers=newstringbuffer();
inti=mycanvas.time%3;
stringstr;
try{
//根据不同的类型导入不同的敌人图片
switch(type){
case0:
s.append("/plan0");
s.append(i);
s.append(".png");
str=s.tostring();
img=image.createimage(str);//plan0
break;
case1:
s.append("/plan0");
s.append(i);
s.append(".png");
str=s.tostring();
img=image.createimage(str);//plan1
break;
case2:
img=image.createimage("/boss0.png");//boss0
break;
case3:
s.append("/plan1");
s.append(i);
s.append(".png");
str=s.tostring();
img=image.createimage(str);//plan1
break;
case4:
s.append("/plan1");
s.append(i);
s.append(".png");
str=s.tostring();
img=image.createimage(str);//plan2
case5:
img=image.createimage("/boss1.png");//boss1
case6:
img=image.createimage("/blod.png");//blod
break;
case7:
img=image.createimage("/explored.png");//explored
break;
}
}catch(exceptione){
system.out.println("设置敌人的图片不能为空");
}
}
publicvoiddraw(graphicsg){
g.drawimage(img,x,y,0);
}
publicvoidcycle(){
switch(gettype()){
case0:
y+=gety()%1+1;
break;
case1:
y+=gety()%2+1;
break;
case2:
y+=gety()%2+2;
break;
case3:
y+=gety()%2+3;
break;
case4:
y+=gety()%2+5;
break;
case5:
y+=gety()%2+8;
break;
case6:
y+=gety()%1+1;
break;
}
}
/**
*设置敌人的x坐标
*
*@paramxx
*/
publicvoidsetx(intxx){
x=xx;
}
/**
*得到敌人当前的x坐标
*
*@return
*/
publicintgetx(){
returnx;
}
/**
*设置敌人的y坐标
*
*@paramyy
*/
publicvoidsety(intyy){
y=yy;
}
/**
*得到敌人当前的y坐标
*
*@return
*/
publicintgety(){
returny;
}
/**
*得到敌人类型
*
*@return
*/
publicintgettype(){
returntype;
}
/**
*设置敌人类型
*
*@paramtype
*/
publicvoidsettype(inttype){
this.type=type;
}
}
ball.java–子弹类,其中定义了子弹的位置及子弹运行轨迹
12
内容仅供参考