在中兴软件技术从事手机游戏开发的实习报告.doc_第1页
在中兴软件技术从事手机游戏开发的实习报告.doc_第2页
在中兴软件技术从事手机游戏开发的实习报告.doc_第3页
在中兴软件技术从事手机游戏开发的实习报告.doc_第4页
在中兴软件技术从事手机游戏开发的实习报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在中兴软件技术从事手机游戏开发的实习报告 一、实习目的 熟悉j2me开发手机游戏的环境和配置,学习java程序语言并能够利用java进行软件开发,能够实现一个简单的java手机游戏,通过培训增强分析程序源代码及编程的能力。 二、实习任务 学习j2me语言及java手机游戏的开发和设计,基本的理论原理,并在培训后以小组的形式完成一个小型的java手机游戏程序。 三、实习时间及地点 实习时间:xx年2月23日xx年3月1日实习地点:信科s311b 四、实习内容及过程 实习内容:j2me手机游戏开发 实习过程: 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子弹类,其中定义了子弹的位置及子弹运行轨迹 五、实习收获与体会 通过这几天的培训,我逐步熟悉了java游戏开发,也深刻的体会到了要实现一个游戏程序的困难,在游戏中一个很简单的动作,往往涉及到一系列的代码。总的来说,我学会了怎么配置基于j2me的java游戏开发环境,以及对简单的类之间的继承,接口的连接等,了解了基本类的定义和对象属性的设置;也让我学到了一些基本的游戏设计和开发方法,并对每个游戏动作如何在代码中实现出来有了一定了解。 这次通过参加培训,然后自己动手来完成一个java游戏的开发,增强了我们的动手能力,让我们可以自主的去构思要实现的功能以及需要的函数、类等,提高了我们对于程序的总体把握能力。在设计游戏和编写代码的时候,由于刚开始对游戏的运行规则没有定义好,在写代码的时候做了几次修改,这增加了开发所要的时间,降低了开发效率。开始定义的碰撞也不太合理,使得子弹离敌机距离稍大也算打中敌机,看起来就是子弹没有打中,敌机也被歼灭了,后来进行了调整。在整个游戏的开发过程中,我认识到程序的调试和改错方面有许多的技巧,例如段首的提示符给予的信息以及被特殊标出的下划线,都可以作为参考。代码开发是一项比较烦琐的工作,长久就会失去耐心,就会容易出错,所以要做到耐心和细心,才能够减少错误,进而减少调试所需的时间。 六

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论