课程设计案例-JME手机游戏
- 格式:doc
- 大小:770.00 KB
- 文档页数:35
引言在如今3G时代,手机游戏、移动多媒体无线增值服务,已会成为一个热点。
我国主要的移动运营商正在积极努力致力于发展手机游戏业务。
在中国,手机游戏仍处于探索时期,其发展仍然受很多因素的制约。
面对广阔的市场和无限的潜在客户的基础上,如何真正让手机游戏在正确的轨道上发展和运作是电信运营商和游戏开发商急需解决的问题。
从用户角度看,手机游戏因其随时随地便于携带的基本特征备受用户关注。
因此用户无论在户外或车里,只要是空闲时间,都可以成为手机游戏参与者。
由于游戏节奏很快,不会占用用户大量的时间,游戏情节进度可以暂停等效果,给用户提供方便,并降低了游戏难度的阈值,提高用户的游戏的兴致度及可玩值,提供更适合的人在旅游时的休闲、娱乐功能。
从开发的角度上来看,成熟的手机游戏产品应该有以下几个方面:一个是能够适应庞大的用户群,即可以在高峰时间内集中加载游戏的信息;二是游戏可以适应不同的移动终端的屏幕尺寸;三是一个手机游戏的兼容性,一些智能手机的色彩和声音支持具有良好的兼容性;四是游戏中应当应用合理大小,若手机没有太大内存,用户下载和存储很难;五是游戏过程能中断性要求,结合不同的特点,可以实现手机操作系统的背景。
目前,手机网络游戏有两大发展的基本条件:一是有效的3G网络传输平台,在3G手机网络时代的传输速率和承载能力有了很大程度的提高,互联网电话打开网页时间基本控制在3秒左右,对移动电话使用3G网络的高速数据传输的实时转播的多媒体内容丰富,打破了数据传输速度的对手机游戏开发限制;二是完美的电话终端的软硬件支持环境,手机硬件生产、开发与手机操作系统的不断成熟,为移动终端平台实现多种插件凝聚力提供依据,手机的娱乐功能越来越易于实现高质量的,有利于各种手机网络游戏需要。
手机网络游戏市场的需求将在几年呈强劲的势头。
首先,是指在2002年左右发展迅速的PC网络游戏。
从中可以看到,中国的宽带互联网业务网络游戏和走进公众生活,占用庞大的用户群体,使中国的游戏厂商也如雨后春笋般迅速崛起一般。
J2ME游戏设计读书笔记配置Configuration定义:用来开发在某个特定范围的设备上运行的应用程序所要用到的一组最小的API。
无限设备的标准配置:连接无限设备配置CLDC(Connected Limited Device Configuration)CLDC描述了所有无限移动设备所需的一个最小级别的功能集合。
CLDC设备包括:收集,寻呼机,PDA,掌上电脑等。
框架Profile这是一个进一步以特定设备位目标的一组更具体的API。
配置描述了一类设备,而框架更加具体化并且从一类设备中分理处一个特定类型的设备。
移动信息设备框架MIDP(Mobile Information Device Profile)是建立在CLDC基础上的用来描述收集和寻呼机这样的无限移动设备的框架。
按照MIDP规范开发的J2ME应用程序叫做MIDlet,因此我们使用J2ME MIDP创建的任何游戏实际上都是MIDlet。
MIDlet必须被打包成JAR文件(Java ARchive)文件以便发布。
通常一个MIDlet JAR文件包括:1:MIDlet类2:支持类3:资源(声音,图像等等)4:清单文件(.mf文件):描述了同一个压缩文档中所包含的类。
5:应用程序描述符(.jad文件):提供和一个JAR文件包含的多个MIDlet相关的描述信息。
MIDlet的开发步骤:1:编辑2:编译3:预验证4:模拟5:设备上测试6:部署MIDlet开发需要的工具:1:Java 2 SDK2:J2ME Wireless ToolkitJava 2 SDK是用Java来开发的一个标准开发工具包,J2ME Wireless Toolkit的作用相当于一个用来和Java 2 SDK协同工作的插件,用来验证和测试MIDlet的一个字节码验证器和几个J2ME模拟器。
额外,几个移动设备厂商还有他们自己的工具保,包含了其他的MIDlet开发工具。
KToolbar是一个可视化的开发环境,使我们能够通过一个图形用户界面来创建,编辑,打包和测试J2ME应用程序。
收集需求作为一个快速概览,回答自己以下几个问题:动机用一句话来总结你的游戏的想法。
如果不能,它太复杂。
一个能无缝登录星球的真实星球大小的地图的修真类游戏。
谁的目标群体?他们为何会选择在100万其他存在你的游戏吗?喜欢超大地图,喜欢科幻的。
因为我的游戏能给他们提供一个超大型的星球场景,而不是过去那种平面地图。
游戏类型点的角度(相机)?什么样的性格(S)播放器控制(如有)?第3人称角度。
中式修真风格。
时间或回合制?时间制。
讲究的就是自由度。
类型,设置,故事背景?(如适用)类型:修真。
设置:故事背景:游戏什么是启动状态,结束状态是什么?球员管理哪些资源?如何获得的资源,转化,花?如速度,黄金,卫生,“点”。
球员如何互动?即规则,挑战,游戏机制。
什么样的状态被认为是赢球,什么失去?多媒体资产您需要哪些媒体?您将如何得到这个内容?模型,地形,材料,纹理;噪音,音乐,声音,视频,舞台布景,口头/书面对话框;级别的地图,任务,故事,AI脚本...模型可以大部分外包,一小部分自己做。
接口你可以实现输入控制的高度吗?即使是轻微的导航和互动毛刺游戏不可解。
清楚地反映当前状态,并在游戏状态的变化。
如健康/损坏。
显然,奖励优秀的动作,并阻止坏的。
规划发展历程使用问题和bug跟踪系统概述你想要什么功能,需要什么样的组件。
1. 准备I. 作品:加载测试资产和实物模型和股票艺术储蓄。
II. 布局整体的应用流量,即介绍/选项/游戏画面之间切换,等III. 获取一个典型的一级工作。
例如,如果游戏是“Jump'n'Run”,跳跃和运行必须的工作,然后才能宣布阿尔法。
2. alpha版本I. 作品:更换所有模拟与真正的媒体和级别的地图的初稿。
II. 运行的alpha测试,跟踪bug,调试,优化。
III. 声明之前宣布的Beta 特性冻结。
这样可以防止新的错误的无底洞。
3. 测试版发布I. 作品:填写在最后的媒体和级别的地图。
J2ME手机游戏开发技术与实践课程设计一、课程设计目标本课程设计旨在培养学生对J2ME(Java 2 Mobile Edition)手机游戏开发技术的理解与实践能力,帮助学生了解J2ME游戏开发的基本理论和技术要点,掌握J2ME游戏开发所需的工具和平台环境,并能独立完成一个小型的J2ME手机游戏开发项目。
二、课程设计内容1. J2ME介绍本课程将首先介绍J2ME的基本概念和特点,分析其在手机游戏开发中的优势和不足。
2. J2ME游戏开发工具本课程将介绍J2ME游戏开发所需的工具和平台环境,包括Eclipse集成开发环境、J2ME Wireless Tool Kit、Java SDK、Java ME Platform SDK等,让学生熟练掌握J2ME游戏开发所需的开发工具和平台环境。
3. J2ME游戏开发基础本课程将讲解J2ME游戏开发的基础知识,包括如何创建一个J2ME游戏工程、如何实现游戏的图像显示、声音播放、触屏控制等功能的实现。
4. J2ME游戏实例分析本课程将分析一些经典的J2ME游戏实例,帮助学生理解J2ME游戏开发的实现方法和技巧,同时学生将根据这些实例进行一些小型游戏的开发。
5. J2ME游戏上线和营销课程最后将介绍移动设备游戏的上线和营销策略,包括如何通过各种渠道发布和推广自己的J2ME游戏,为学生未来从事移动游戏开发,为自己的游戏营销提供参考和指导。
三、课程设计任务完成一个小型的J2ME手机游戏开发项目,完成以下步骤:1.案例选取:根据个人兴趣选定一款适合J2ME平台的游戏作为本次课程设计的开发对象。
2.游戏设计:使用MindManager或其他思维导图工具,完成游戏设计文档(GDD),包括游戏说明、界面设计、关卡设计、声音和特效设计、游戏规则等内容。
3.开始开发:在Eclipse中创建一个新的J2ME工程,按照游戏设计文档中的设计实现游戏主体框架,并逐步实现游戏的各种功能。
4.测试调试:完成游戏基本功能开发后,需要进行测试和调试,确保游戏运行正常,没有不良后果和内存泄露等问题。
J2ME手机游戏设计之“打砖块”一、游戏分析:随着现代社会发展的日新月异,人们平常工作学习的竞争也在加大,生活的压力也跟着加重。
所以利用闲暇之余,大家都需要休闲娱乐工具,来放松自己,缓解压力,消除紧张的疲劳状态。
在这样的背景下,打砖块游戏作为一向休闲手机游戏应运而生,它不仅能舒缓我们的身心,而且能够开发我们的动手能力,提高自己的反应敏捷程度,充实自己。
二、游戏规则设计:BeatBrick:打砖块游戏的游戏规则为,每局有三个球,也就是有三条生命。
首先发球,球在击打砖块后弹回。
此时,须用球拍接住弹回的球并令其继续击打砖块。
否则,球会掉出屏幕。
直至球全部使用完或通全关则游戏结束。
游戏开始时,小球会停在挡板正中间,且此时挡板可左右自由移动,当按下空格键后小球会弹出,并在程序设定的区域内不停的碰撞反弹。
当小球碰到墙壁、挡板和砖块时,均会以相反的速度反弹,并且砖块被碰撞后会自动消失。
挡板可左右移动以接住小球,若小球没有被接住,超出指定区域下边缘,则程序会提示游戏结束,点击“确定”后退出程序。
当所有的砖块均消失时,程序会提示你赢了。
三、游戏实现:1、J2ME,即Java 2 Micro Edition,是SUN公司推出的在移动设备上运行的微型版Java平台,常见的移动设备有手机,PDA,电子词典,以及各式各样的信息终端如机顶盒等等。
最重要的移动终端当然是手机了,因此,我们主要讨论手机相关的J2ME规范。
J2ME是Sun公司为嵌入式开发所定义的一个框架,一系列标准的规范所组成。
所以J2ME是一个协议簇,而不是单一的规范。
2、游戏由6个类构成:GameScreen:GameScreen类表示游戏的核心,它包括对象的移动、图像的绘制以读取和响应用户的输人。
本游戏从MIDP LCDUI的低级Canvas类派生一个类来代表游戏的屏幕,后面将对这个类进行详细的说明。
BeatBrick:由MIDIet继承而来的应用程序类来代表这个应用程序。
摘要J2ME虚拟机在手机上的普及为手机游戏的发展提供了最适合的土壤,随着MIDP2.0的发布,特别是其中新增的GameAPI使得手机游戏开发者可以更专注于游戏性的增强而不再是繁琐的动画处理与地图设计,让开发过程变得更加方便迅捷,它是手机游戏发展的重要里程碑。
随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重。
所以休息时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓解自己的压力,消除紧张的疲劳状态。
连连看游戏是一种意趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专心的程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。
本文完整地描述了如何在Jbuilder平台应用J2ME技术,特别是MIDP2.0中新增加的GameAPI在手机上实现连连看游戏(原型为电脑上游戏《连连看》),核心在于其GameMap类这一模块的构建。
其中涉及到的技术有Midlet 框架、游戏状态机、线程、精灵、地图、关卡、程序优化及兼容性设计等。
关键词:J2ME,Midlet框架,连连看,地图ABSTRACTJ2ME virtual machine on your phone penetration of the cell phone game development offers the most suitable soil, With MIDP2.0 releases, particularly with the new GameAPI makes mobile phone games developer can concentrate more on the game instead of strengthening cumbersome to deal with the animation map is designed to allow the development process more conveniently and quickly, It is a important milestone in the development of cell phone games.With the quickening of social rhythm, the intensity of competition of working usually is strengthened, the pressure of life follows to aggravate too. So everybody needs an amusement tool of recreation when coming off duty or having a rest, relax one, alleviate one's own pressure, dispel the tense fatigue state.This paper describes the integrity of how the Jbuilder platform in J2ME technology, especially MIDP2.0 newly added GameAPI on cell phones to achieve a LLK-Game (prototype online computer game "LLK-Game"), the core of its game GameMap class building. With respect to the technology Midlet framework, state game machine, thread, clever, maps, hurdles Process optimization and compatibility design. The first chapter describes the J2ME games, and the paper agreed terms; The second chapter describes the development of the game and to use the platform of the main technologies; Chapter III of the game for a simple needs analysis; Chapter 4 is a concrete realization of the game, and describe some of the key technology; Chapter 5 is about the process of summing up and how to finish this design.。
河北农业大学本科课程设计题目:J2ME手机游戏系统分析与设计学院:信息科学与技术学院专业班级:计算机科学与技术040X班学生姓名:吴丹(组长)、赵燕(组员)学号:指导教师(职称):李阅历(助教)2OO7 年 7 月 6 日(目录应为自动生成的)目录1.软件项目计划-------------------------------------------2 2.软件需求规约-------------------------------------------5 3.软件设计规约-------------------------------------------15 4.测试规约--------------------------------------------------24 5.附录(程序源代码)--------------------------------32注意:此案例仅为举例,同学们做的时候,应包含以下的内容:1、详细的成员分工说明,比如:赵燕(组员):负责系统分析中的用例建模及其文档描述等;2、结合OOSAD,谈一下做此项目的目的与意义,所要使用的技术工具,如Rose、Visual等;3、项目的计划和管理,关键路径的制定,可行性的分析等;4、需求分析,需求获取、用例(典型用例的详细书面描述)、概念数据模型、顺序图、类图(注意从分析类到设计类的转换过程)、其他的动态模型,如活动图、状态图等;5、设计建模(用例实现),包括设计元素、UI设计、数据库建模等;6、实现阶段,代码实现、系统整体部署与测试(可选);7、结论,指出在分析与设计中遇到的问题,和下一步的完善方向;软件项目计划Ⅰ.引言A.游戏名称CatchEggB.计划的目的1.通过实际编程,提高代码的效率,规范性,以及可读性。
2.了解J2ME游戏在手机里的实际应用。
3.熟悉软件工程分析设计工程C.游戏介绍游戏最终画面如下图片所示:说明:游戏由5个对象组成,分别是背景(bkground),小鸟(bird),母鸡(hen),以及下落的蛋(egg)和盆(pen)。
屏幕左上方会随机飞出小鸟,在小鸟飞往右边的消失的时候会随机丢下1到2个蛋,通过控制模拟器上的左右键盘移动母鸡走动,让蛋能够落在母鸡的盆里。
下方显示的是接到的蛋的数量,以及显示剩余时间。
D:开发环境JDK + J2ME Wireless ToolkitⅡ.项目估算A. A.估算技术采用基于LOC估算技术B.工作量、成本和持续时间的估算每个劳动力的成本为100元/人天平均生产率约为100 LOC/人天实际状况下:参与人数为2人,有1条通讯路径,每条降低生产率50 LOC/人天实际生产率为200 – 50 = 150 LOC/天每个LOC的成本约为150 / 400 = 2.67 元实际工作量估算约为5人天Ⅲ.进度A.项目工作细分结构(1)软件项目计划(2)需求分析(3)概要设计(4)程序编码(5)软件测试B.任务网络C.时间表(甘特图)表示里程碑。
Ⅳ.人员组织A.管理报告项目由2006年1月10开始至1月20日结束,人员分工安排如下:(1)1月10日由项目经理吴一心进行软件项目计划,写出软件项目计划书。
(2)1月11日至1月13日由陆兆迪,吴元清进行需求分析,写出需求分析书。
(3)1月14日至1月15日由翁建飞进行概要设计,写出软件设计规约书。
(4)1月16日至1月18日由吴一心,陆兆迪按照软件设计规约进行程序编码。
(5)1月19日吴一心设计测试规约,并由吴一心按照规约进行软件测试。
软件需求规约Ⅰ.引言A.系统参考文献《java程序设计教程》中国电力出版社肖晏著《j2me无线平台应用开发》清华大学出版社张小玮著《j2me应动设备程序设计》清华大学出版社胡虚怀著《java2游戏设计》荣钦科技编著B.整体描述完成一个J2ME手机游戏. 游戏由5个对象组成,分别是背景(bkground),小鸟(bird),母鸡(hen),以及下落的蛋(egg)和盆(pen)。
屏幕左上方会随机飞出小鸟,在小鸟飞往右边的消失的时候会随机丢下1到2个蛋,通过控制模拟器上的左右键盘移动母鸡走动,让蛋能够落在母鸡的盆里。
下方显示的是接到的蛋的数量,以及显示剩余时间。
Ⅱ.UML视图1.用例图2.类图3.顺序图4.活动图Ⅲ.程序实现A.子程序划分(1) 主流程。
(2) 母鸡移动。
(3) 鸟的生成。
(4) 蛋的随机生成。
(5) 接蛋判断。
(6) 数据统计。
B.子程序描述(1)主流程用一个线程来使3个对象能够在屏幕上动起来,每变一次,线程sleep(100)(2)母鸡移动调用keypressed()和keyrepeated()函数,使的每按一次左右健或者按住左右健,母鸡的坐标变量都能够改变,实现移动(3)鸟的生成用一个随机函数,来判断当前是不是要新生成一只鸟(bird),并给它初始化坐标.(4)蛋的随机生成与鸟的生成类似,只不过它的初始化坐标与鸟的当前坐标有关.(5)接蛋判断用来判断是否接到落下的蛋(6)数据统计负责统计接到蛋的数量以及时间的统计软件设计规约I.过程设计(1)游戏主线程模块A.处理说明游戏的主线程,每次启动游戏,都是用这个模块开始的.B.代码描述import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class CatchEggGameMIDlet extends MIDlet {/** 储存CatchEggCanvas对象的变量 */private CatchEggGameCanvas catchEggGameCanvas;/** 构造函数 */public CatchEggGameMIDlet() {catchEggGameCanvas = new CatchEggGameCanvas();Display.getDisplay(this).setCurrent(catchEggGameCanvas);}/** MIDlet开始时所调用的方法 */protected void startApp() throws MIDletStateChangeException {}/** MIDlet暂停时所调用的方法 */protected void pauseApp() {}/** MIDlet结束时所调用的方法 */protected void destroyApp(boolean unconditional)throws MIDletStateChangeException {} }(2)母鸡移动A.处理说明处理母鸡坐标的移动B.代码描述protected synchronized void keyPressed(int keyCode) {int gameCode = getGameAction(keyCode);switch(gameCode) {case LEFT: //按下向左按键时leftPressed = true;getZhuPenXY();break;case RIGHT: //按下向右按键时rightPressed = true;getZhuPenXY();break;default:break;}}protected void keyReleased(int keyCode){int action = getGameAction(keyCode);switch (action){case LEFT:leftPressed = false;henImgInx = 3;break;case RIGHT:rightPressed = false;henImgInx = 0;break;default:break;}}(3)鸟的生成A.处理说明让屏幕右上方随机产生鸟B.代码描述void createBird(){if(birdCount < bird.length){int tmpInt = random.nextInt() % 15 ; //修改数字能改变bird 出现的概率for(int i=0;i<bird.length;i++){if(tmpInt == 0 && !bird[i].isVisable() ){bird[i].setVisable(true);bird[i].setX(bird[i].getWidth()*(-1));birdCount++;frontTime = System.currentTimeMillis();break; //保证一次产生一只}}}}(4)蛋的随机生成A.处理说明让飞过的鸟不断的落下蛋,当游戏结束的时候停止B.代码描述boolean isDropEgg(){int tmpInt = random.nextInt() % 20;if(tmpInt == 0 && eggDropCount<2){eggDropCount++;return true;}elsereturn false;}}(5)接蛋判断A.处理说明判断蛋和盆是否重合B.代码描述boolean isOverlaps(Egg egg) {if( (zhuPenX <= egg.eggX && zhuPenX + zhuPenWidth >= egg.eggX) || //右(zhuPenX >= egg.eggX && zhuPenX <= egg.eggX + egg.eggWidth )) { //左if( (zhuPenY <= egg.eggY && zhuPenY + zhuPenHeight >= egg.eggY) ||//上(zhuPenY >= egg.eggY && zhuPenY <= (egg.eggY + egg.eggHeight))) { //下return true;}}return false;}(6)数据统计A.处理说明负责统计接到蛋的数量以及时间的统计B.代码描述protected void paint(Graphics g) {g.drawString("x"+String.valueOf(score),35,screenHeight-13,g.TOP|g.LEFT);g.drawString("time:"+String.valueOf(gameTime),90,screenHeight-13,g.TOP|g.LE FT); //显示时间}Ⅱ.流程图测试规约Ⅰ.测试过程A.集成顺序:自底向上集成1.目的检测程序的正确性与稳定性。