




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1枣枣庄庄学学院院信息科学与工程学院信息科学与工程学院课程设计任务书课程设计任务书题目:小游戏程序程序开发学号:201012220241姓名:赵文正专业:计算机应用技术课程:J2ME应用技术开发指导教师:刘梦琳职称:讲师完成时间:2012年5月-2012年6月枣庄学院信息科学与工程学院制2课程设计任务书及成绩评定课程设计任务书及成绩评定课程设计的任务和具体要求课程设计的任务和具体要求任务:任务:1、利用本学期所学的知识,设计并开发出一个手机游戏或手机应用小系统。手机游戏类例如:贪吃蛇游戏、挖雷游戏、五子棋游戏等;应用小系统类,例如:手机短信的收发、通讯录系统等。2、要求界面美观、功能较齐全;设计要求设计要求:1、开始显示初始化游戏界面,请稍后正在加载。2、进入游戏列表,请选择你要玩的游戏,选择好进入游戏。3、开始玩游戏,进行小游戏运行指导教师签字:、日期:指导教师评语指导教师评语成绩:指导教师签字:日期:3课程设计所需软件、硬件等课程设计所需软件、硬件等硬件:硬件:计算机、打印机软件:软件:KVMEcipse、WTK2.5.2JavaME课程设计进度计划课程设计进度计划起至日期起至日期工作内容工作内容备注备注201251201251520125152012612012612012615确定程序编写代码撰写设计书参考文献、资料索引参考文献、资料索引序号文献、资料名称编著者出版单位1、基于Eclipse环境的J2ME应用程序开发万辉王军编著清华大学出版社2、J2ME应用教程陈旭东,徐保民编著.清华大学出版社3、J2ME移动设备程序设计胡虚怀李换编著.清华大学出版社.4、J2ME开发精讲詹建飞编著.电子工业出版社.5、J2ME技术开发与应用李研刘晶晶编著.机械工业出版社.2摘要J2ME平台被认为是最杰出的手机游戏平台,它为开发者、设备制造商、网络通信公司和消费者广泛接受。它有一些非常重要的特征对所有组织都有益。因为J2ME应用在不同设备上都是便携式的,他们常常可在网络上下载和执行。本设计通过Alert和Gauge设计的进度条,进行加载游戏等待。通过用List设计一个游戏列表,进行选择游戏。上面的Alert、(Gauge)和List是Screen高级编程的代表,看出Screen都是全屏显示的,对屏幕的显示设计是离不开的。通过Canvas或gameCanvas才能画到屏幕上,通过他们以及各种类库来进行设计贪吃蛇和扫雷游戏,最后编程实现了全过程。本游戏如我们手机上的小游戏差不多,比较人性化的,合理的设计,由于本人能力有限时间有限只能做的这样,希望大家好好看看,通过本次实验设计可以吧高级编程和低级编程都进行系统的掌握一下。关键词关键词:J2ME面向对象CanvasgameCanvasAlertListGauge3目录目录11、设计内容、设计内容.3322、设计过程、设计过程.332.1设计方案的论证.32.2、界面设计.333、设计内容、设计内容.663.1程序代码.63.1.1MIDLET主程序代码(GAMECANVAS).63.1.3扫雷游戏代码(MINECANVAS)同贪吃蛇类似.1644、实现结果、实现结果.16164.1游戏加载框.164.2游戏选择框.174.3贪吃蛇游戏.184.4扫雷游戏.1955、实验小结、实验小结.1919411、设计内容、设计内容本设计是从设计界面开始的,从游戏的加载,在进入游戏的选择列表,你想玩那个游戏就玩那个游戏,给人们提供方便,贪吃蛇和扫雷是个老幼皆宜的小游戏,贪吃蛇游戏是用户根据键盘的四个方向键控制翻向上、向左、向右和向下操作,(控制键的实现是由键盘的方向键的消息函数实现)遇到食物就进行加长蛇身,就这样不断的加长。扫雷吧就是先设计个方格框有插旗、有数字、有雷,雷的出现是随机的。22、设计过程、设计过程2.12.1设计方案的论证设计方案的论证J2ME语言继承了JAVA语言易学易用的特点,特别适合于初学者学系统编程。随着21世纪信息社会的到来计算机在人们的工作和生活中的深入要求我们越来越多地与计算机打交道为了使用户在繁忙的日程工作中得到放松于是出现了各种各样的休闲软件如聊天工具游戏等等。通过这学期来J2ME课程的学习,我初步掌握了J2ME语言的最基本的知识,于是老师的指导下动手用J2ME编写小游戏(贪吃蛇和扫雷)。游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,激发大家的娱乐激情。从本游戏的从设计界面出发,主要就是本设计是从设计界面开始的,从游戏的加载,在进入游戏的选择列表,你想玩那个游戏就玩那个游戏,给人们提供方便,贪吃蛇和扫雷是个老幼皆宜的小游戏,贪吃蛇游戏是用户根据键盘的四个方向键控制翻向上、向左、向右和向下操作,(控制键的实现是由键盘的方向键的消息函数实现)遇到食物就进行加长蛇身,就这样不断的加长。扫雷吧就是先设计个方格框有插旗、有数字、有雷,雷的出现是随机的。2.22.2、界面设计、界面设计5如图1(代码流程):Alert(Gauge)ListCanva(GameCanvas)gobangCanvasboxCanvasMineCanvascardsCanvas结束gameCanvas6如图2(界面流程图):游戏列表游戏加载请稍后贪吃蛇选项扫雷选项五子棋选项推箱子选项纸牌选项进入贪吃蛇游戏进入扫雷游戏进入五子棋游戏进入推箱子游戏进入纸牌游戏退出结束733、设计内容、设计内容3.13.1程序代码程序代码.1MIDletMIDlet主程序代码主程序代码(gameCanvas)importjavax.microedition.lcdui.Alertimportjavax.microedition.lcdui.AlertTypeimportjavax.microedition.lcdui.Choiceimportjavax.microedition.lcdui.Commandimportjavax.microedition.lcdui.CommandListenerimportjavax.microedition.lcdui.Displayimportjavax.microedition.lcdui.Displayableimportjavax.microedition.lcdui.importjavax.microedition.lcdui.Gaugeimportjavax.microedition.lcdui.Imageimportjavax.microedition.lcdui.Itemimportjavax.microedition.lcdui.ItemCommandListenerimportjavax.microedition.lcdui.Listimportjavax.microedition.lcdui.StringItemimportjavax.microedition.lcdui.TextBoximportjavax.microedition.lcdui.TextFieldimportjavax.microedition.midlet.MIDletimportjavax.microedition.midlet.MIDletStateChangeExceptionpublicclassgameMIDletextendsMIDletimplementsRunnableCommandListener显示privateDisplaydisplayprivateSnakeCanvassnakecanvasprivateMineCanvasminecanvaspublicstaticgameMIDletinstance加载提示privateAlertalert加载条privateGaugegauge数目列表privateListlistprivateintcurgameIndex=08初始时间longfirstTimeprivateImageimageprivatefinalCommandEnter=newCommand(进入Command.OK1)privatefinalCommandExit=newCommand(退出Command.EXIT1)privatefinalCommandBack=newCommand(返回Command.BACK1)游戏名privateStringbookName=贪吃蛇扫雷纸牌推箱子publicgameMIDlet()TODOAuto-generatedconstructorstubdisplay=Display.getDisplay(this)alert=newAlert(游戏启动中nullnullAlertType.INFO)gauge=newGauge(nullfalse51)alert.setIndicator(gauge)alert.setTimeout(6000)firstTime=System.currentTimeMillis()minecanvas=newMineCanvas()snakecanvas=newSnakeCanvas()image=createImage(123.png)list=newList(游戏名Choice.IMPLICITbookNamenewImageimageimage)list.addCommand(Enter)list.addCommand(Exit)list.setCommandListener(this)newThread(this).start()privateImagecreateImage(Stringfile)Imageimage=nulltryimage=Image.createImage(file)catch(Exceptione)9e.printStackTrace()returnimageprotectedvoiddestroyApp(booleanarg0)TODOAuto-generatedstubprotectedvoidpauseApp()TODOAuto-generatedstubprotectedvoidstartApp()TODOAuto-generatedstubdisplay.setCurrent(alert)publicvoidexitApp()trydestroyApp(true)notifyDestroyed()catch(Exceptione)TODOAuto-generatedcatchblocke.printStackTrace()控制进度提示publicvoidrun()TODOAuto-generatedstubwhile(true)inttime=(int)(System.currentTimeMillis()-firstTime)gauge.setValue(time1000)if(time=alert.getTimeout()alert.setString(欢迎进入游戏,请稍后)sleep(1000)display.setCurrent(list)alert.setIndicator(null)break10各个窗体事件publicvoidcommandAction(CommandcommandDisplayabledisplayable)TODOAuto-generatedstubif(command=Enter)if(displayable.equals(list)curgameIndex=list.getSelectedIndex()if(curgameIndex=0)display.setCurrent(snakecanvas)elseif(curgameIndex=1)display.setCurrent(minecanvas)elseif(curgameIndex=2)elseif(curgameIndex=3)elseif(command=Exit)notifyDestroyed()destroyApp(true).2贪吃蛇游戏代码贪吃蛇游戏代码(SnakeCanvas)importjava.util.Randomimportjavax.microedition.lcdui.Canvasimportjavax.microedition.lcdui.GraphicspublicclassSnakeCanvasextendsCanvasimplementsRunnable食物的左上角X坐标privateintfoodX食物的左上角Y坐标privateintfoodY食物的颜色值privateintfoodC贪吃蛇privateintsnake=newint2003贪吃蛇食物宽度privatefinalintSNAKE_W=4贪吃蛇食物长度privatefinalintSNAKE_H=411贪吃蛇的身体长度,即包含食物的个数privateintsnakeNum方向变量privateintdirection方向上privatefinalintDIR_UP=0方向下privatefinalintDIR_DOWN=1方向左privatefinalintDIR_LEFT=2方向右privatefinalintDIR_RIGHT=3Random对象,控制食物的随机出现Randomrandom=newRandom()可选颜色值privatefinalintCOLOR=0 xff00000 x00ff000 x0000ff0 xffff000 xff00ff0 x00ffff0 xff000f线程对象privateThreadthread线程控制变量privatebooleanisShow=true游戏是否退出控制变量privatebooleanisExit=false屏幕宽privateintSCREEN_W屏幕高privateintSCREEN_HpublicSnakeCanvas()TODOAuto-generatedconstructorstub获取屏幕宽度和高度SCREEN_W=this.getWidth()SCREEN_H=this.getHeight()初始化贪吃蛇的长度snakeNum=7for(inti=0i0i-)snakei3+0=snake(i-1)3+0snakei3+1=snake(i-1)3+1第一个单元格移动stepX=0stepY=0switch(direction)caseDIR_UP:stepY=-SNAKE_HbreakcaseDIR_DOWN:stepY=SNAKE_HbreakcaseDIR_LEFT:stepX=-SNAKE_WbreakcaseDIR_RIGHT:stepX=SNAKE_Wbreaksnake03+0+=stepXsnake03+1+=stepYif(snake03+0=0)snake03+0=SCREEN_W-SNAKE_Welseif(snake03+0=SCREEN_W-SNAKE_W)snake03+0=0生成新的食物15privatevoidmakeFood()食物坐标foodX=Math.abs(random.nextInt()%(SCREEN_W-SNAKE_W+1)SNAKE_WSNAKE_WfoodY=Math.abs(random.nextInt()%(SCREEN_H-SNAKE_H+1)SNAKE_HSNAKE_H食物颜色foodC=COLORMath.abs(random.nextInt()%COLOR.length)判断游戏是否结束结束条件:1、蛇头超出边界2、蛇头碰到自身privatebooleanisGameOver()边界判别if(snake03+0(SCREEN_W-SNAKE_W)|snake03+1(SCREEN_H-SNAKE_H)returntrue碰到自身for(inti=4isnakeNumi+)if(snake03+0=snakei3+0snake03+1=snakei3+1)returntruereturnfalse绘制函数protectedvoidpaint(Graphicsg)TODOAuto-generatedstub屏幕擦除g.setColor(0)g.fillRect(00SCREEN_WSCREEN_H)绘制贪吃蛇16for(inti=0isnakeNumi+)drawSnake(gsnakei3+0snakei3+1snakei3+2)绘制食物drawSnake(gfoodXfoodYfoodC)绘制贪吃蛇和食物paramgparamxparamyparamcolorprivatevoiddrawSnake(Graphicsgintxintyintcolor)g.setColor(0 xffffff)g.fillArc(xySNAKE_WSNAKE_H0360)g.setColor(color)g.fillArc(x+1y+1SNAKE_W-1SNAKE_H-10360)事件处理publicvoidkeyPresse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重难点解析华东师大版8年级下册期末测试卷(综合卷)附答案详解
- 城市道路交通规划与管理方案
- 汉字书写规范与练习:小学汉字教育主题
- 移动支付用户行为-洞察及研究
- 北京市西城区第四十四中学2026届化学高一第一学期期末综合测试模拟试题含解析
- 家政服务行业标准与管理优化策略
- 监督纺织行业环境影响评估
- (2025年标准)国家专项协议书
- ESG投资评级-洞察及研究
- (2025年标准)归还男方彩礼协议书
- 《水库大坝安全管理条例》知识培训
- 父女关系断绝书
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 《晚期肾癌新视点》课件
- 三年级 人教版 数学 第六单元《两位数乘一位数(不进位)口算》课件
- 民爆信息系统网络服务平台
- 2025年度智慧企业ERP系统集成与运维服务合同模板2篇
- 2024年优居房产全国加盟手册3篇
- 污水处理工程施工工程组织设计
- 氨基酸作为药物靶点
- 经销商独家授权书
评论
0/150
提交评论