基于J2ME手机游戏的开发与优化导师:陈泽琳马恒信学生:陈云峰2一.手机游戏的现状、意义和亮点二.J2ME平台与MIDP2.0的游戏API概述三.手机游戏开发流程设计与程序类设计四.手机游戏优化五.总结31.1手机游戏的现状、意义和亮点手机游戏在电玩游戏市场上市场份额越来越大。国内的制作手机游戏占中国手机游戏市场20%•人才少•同类手机游戏质量低1、研究手机开发过程,简化游戏开发学习流程2、研究优化手机游戏,为优化手机游戏提供创新思路,提高手机制作的质量手机游戏的地图内存的优化亮点意义现状4一.手机游戏的现状、意义和亮点二.J2ME结构与MIDP2.0的游戏API概述三.手机游戏开发流程设计与程序类设计四.手机游戏优化五.总结5配置configuration简表profile2.1J2ME体系结构概要一、J2ME体系结构两个主要组件(配置简表)API不支浮点计算MIDLET程序应用模型MIDP2.0游戏API小型设备某类小型设备CLDCMIDP配置configuration简表profile支持支持startApp()62.2游戏API介绍游戏画布GameCanvas图层layer贴图层TiledLayer精灵Sprite图层管理器LayerManager屏幕缓冲键盘响应随时获取输入屏幕打印7一.手机游戏的现状、意义和亮点二.J2ME结构与MIDP2.0的游戏API概述三.手机游戏开发流程设计与程序类设计四.手机游戏优化五.总结84.1游戏内容设计94.2程序流程设计MIDLETstartApp()display=Display.getDisplay(this).getCurrent();Display.getDisplay(this).setCurrent(mainMenuScreen);104.3游戏画布GameCavans流程GameCavansRunnable114.4游戏线程设计输入检测场景更新画面绘制挂机等待挂起当前线程绘制缓冲区到屏幕循环时间过快是否124.5玩家飞机精灵设计mainPlanespeed:int[]x:int[]y:int[]createmainPlane(image:Image,frameWidth:int[],frameHeight[])move(frameWidth:int[]):voidsetCanvas(canvasWidth:int,canvasHeight:int):voidinit():voidgetXY():voidfire():voidSprite134.5子弹精灵设计bulletxSpeed:int[]ySpeed:int[]kind:int[]canvasHeight:int[]canvasWidth:int[]createbullet(image:Image[],frameWidth:int[],frameHeight[])moveState():boolean[]setSpeed():voidsetCanvas(canvasWidth:int,canvasHeight:int):voidinit(canvasWidth:int[],canvasHeight:int[]):voidSprite144.6敌机精灵设计bulletenemy攻击随机出现位置XY104213322431540154.7爆炸精灵、碰撞逻辑和地图设计历遍子弹数据与玩家飞机检测敌机历遍与敌机检测是否敌机子弹删除已亡精灵是否碰撞生成爆炸对象是否是否地图手机屏幕explodecreateexplod()act():int[]Sprite16一.手机游戏的现状、意义和亮点二.J2ME结构与MIDP2.0的游戏API概述三.手机游戏开发流程设计与程序类设计四.手机游戏优化五.总结175.1地图优化设计publicfinalvoidpaint(Graphicsg){……inttotalCols=cellMatrix[row].length;……for(intcolumn=0;columntotalCols;column++,tx+=cellWidth){……}}次数无地图大地图并滚动小地图并滚动第一次63132598410391第二次63122562510625第三次63122584310547第四次63132601610390第五次63122579710516第六次63122575010422185.2同类精灵优化设计精灵多维数组………历遍数组设置到数组位置打印到缓存历遍完数组打印到屏幕否是195.3碰撞优化优化YX条件数值=高度之和宽度之和?高度之和:宽度之和If(X条件数值andY条件数值)像素检测方法;205.4、总结1、实现了开发游戏的整个过程2、优化地图优化精灵数组减少像素碰撞方法使用频率并通过数据来证实优化的成功。21感谢聆听