17.手机游戏网络通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

内容第一章:手机游戏概述第二章:手机游戏开发基本技能第三章:开发工具的安装和配置第四章:J2ME技术介绍第五章:简单手机游戏项目实例介绍第六章:手机游戏画面生成第七章:手机游戏音效制作第八章:飞机大战游戏开发第九章:手机游戏的优化策略第十章:手机游戏网络基础授课:华仔J2ME(Java2Platform,MicroEdition)SunJavaWirelessToolkit手机游戏概述手机游戏的市场状况国内:用户群-06底--6亿国际:娱乐性行业:爆发性国内的现状:人才匮乏,欧美、日、韩游戏市场比例大技术、版权、产品质量问题政府对手机游戏政策:贷款、减少税收。手机游戏分类从开发技术角度分类嵌入式游戏-贪吃蛇短信游戏(SMS):文字游戏浏览器游戏-WAP,静态的浏览器载体J2ME游戏:微型版或袖珍版Brew游戏从游戏内容角度分类角色扮演:剑侠奇缘格斗游戏:日本-街头霸王动作游戏:魂斗罗运动游戏:赛车、篮球、网球手机游戏概述射击游戏:飞机--雷电---龙火冒险游戏:虚拟冒险--谜题的重要性--冒险岛益智游戏:拼图、扫雷模拟游戏:虚拟人生棋牌游戏:跳棋、纸牌、麻将休闲游戏:泡泡龙手机游戏的运营方式产业链结构:移动运营商(中国移动和中国联通)-手机游戏开发商cp-手机游戏服务提供商:sp-手机用户组成的产业链。Cp和sp--手机游戏开发团队的组成策划策划设计师,游戏的类型,游戏的规则,软件大小,游戏的场景,美工Ps/flash3d人物造型====策划人员来配合技术J2ME来开发设计,完成产品的研发==测试-修改bug=推广手机游戏前期策划市场的调研手机游戏后期策划运营-推广宣传手机游戏开发基本技能介绍Java语言在手机游戏开发领域中的优势Java/c++跨平台性安全性简单手机游戏的开发流程需求的调研-市场—需求分析-详细设计(策划人员,美工,技术)-编码-测试-修改测试-产品发布程序流程图的绘制数据结构/软件工程结构化程序设计方法程序三种基本结构顺序/循环/分支结构化程序设计方法开发工具的安装和配置JDK的安装与配置Jdk1.6WTK的安装与配置使用WTK如何创建项目?SUNWTKsun_java_wireless_toolkit-2.5.2_01-win.exe各手机厂商的SDK介绍三星/诺基亚/摩托罗拉/LG/联想/苹果Eclipse的安装与配置Eclipse的安装Eclipse3.2MyEclipse6.0以上EclipseME的安装手机游戏开发的插件eclipseme.feature_1.7.9_site.zipHelp-SoftwareUpdates-findandinsatll如何绑定wtk到eclipse当中配置:proguard4.5beta3,加密WinxpJDK-JVMWTK-KVM类与J2ME技术J2ME与Java的关系J2ME概述J2ME技术中常用名词CLDCAPI1.1:有限连接设备配置(配置库)MIDPAPI2.0:移动信息设备简表(简表库)J2ME体系结构及与Java之间的关系类类的派生与继承:extends类的访问机制:privateprotectedpublicMIDlet框架说明??Api?javax.microedition.midlet.MIDlet生命周期是如何运行的?MIDletCLDC配置库MIDP简表库J2ME运行环境简单手机游戏项目介绍如何生成MIDlet框架?在框架中添加程序编译、运行与调试打包生成设定产品的运行环境生成普通包生成混淆包-安装混淆器下载程序到手机手机游戏画面的生成与控制直接显示图片的方法画布(Canvas)精灵(Sprite):动画游戏当中的角色(飞机/坦克)帧,2D,3D,冰河世纪层(Layer)切片组层(TiledLayer)层管理器(LayerManager)TiledLayer由一系列的Cell組成構成的,每一個cell又是一个小矩形。每一个cell当中还可以装载图片,该图像成为Tiled。行号和列号,每个cell所在的行号和列号都是从0开始的。最后的参数是Tiled的编号,这个编号是从1开始的。340,0,301231,1,4层管理器(LayerManager)对各图层进行管理相当于对一个图层建立了一个索引表,索引都是下标从0开始。层的索引值越小则表示它离屏幕的距离越短。TiledLayerSpriteLayerManager手机游戏音效音效的播放简单音调:playTone(intnote,intduration,intvolume);播放音效文件读取音效文件:InputStream,getResourceAsStream读取到的内容传递给播放器:Manager,createPlayer(is,“audil/x-”);设置播放次数:setLoopCount(intcount);播放音效Audio/x-wav:wav格式Audio/basic:AU格式Audio/mpeg:mp3格式Audil/midi:MIDI格式Audio/x-TONE-SEQ:音频格式常用音效格式及其制作软件常用音序器音序器:CakewalkSonar-一个功能全面的专业音效制作平台MidiStd-有美国微软公司生产的音序器常用软件音源RolandVSC-88:日本Roland公司推出的第二代软件音源录音软件CoolEditPro:多轨录音软件音频编辑器Pro-toolsn-track案例疑难解析文字游戏-猜数字益智游戏-拼图射击游戏-飞机大战RPG游戏-MM冒险记经典游戏-坦克大战;J2SE射击游戏-打飞机-分析开始创建Midlet框架定义游戏所需的变量初始化变量,设置玩家玩家飞机初始位置,并读取历史最高记录有方向键输入移动玩家飞机YNO有中心键输入玩家飞机发射导弹YNO逻辑操作:有各个类自动操作1.敌机自动飞行,并控制导弹的发射2.导弹自动飞行,飞出屏幕后自动消失3.爆炸动画自动播放及消失敌机中弹?1.敌机与导弹消失2.产生爆炸3.当前加1分Y玩家飞机中弹?NO显示背景及各种精灵图像NO玩家飞机与导弹消失,产生爆炸Y显示背景及各种精灵图像显示历史最高分与当前得分结束游戏说明游戏规则:玩家控制一架无人战斗机打击霸权列强,英勇不屈,取得了伟大胜利功绩。按手机方向键可移动飞机,按中心键可发射导弹游戏背景不变,屏幕上会随时出现敌机,并不断开火。玩家任务:尽可能多地消灭敌机。当玩家飞机中弹时游戏结束。系统提示本次战斗消灭的敌机数量,以及历史消灭的敌机最高记录。敌机从屏幕上随机出现,之后随机向某个方向直线飞行,并随时发射炮弹。资源文件的处理玩家飞机图片、敌机图片、爆炸图片、导弹图片、背景图片游戏制作难点如何判断导弹击中了飞机--检测碰撞机制如何在手机中保存消灭敌机的最高记录及如何读取已保存的数值。rms多种对象之间的关系。玩家飞机、敌机、炮弹RMS(记录管理系统)能够持久存储数据,提供了RecordStore类,用于使MIDlet应用程序与RMS通信。相当于一个小型数据库,RecordStore相当于数据库的表。每个表中有若干条记录,每条记录有一个int型的记录号(RecordID)和一个byte型的数组构成。记录号看作是主键,byte看作是用来存取的内容。Byte[]getRecord(intrecordId)—读取记录,返回存放内容的byte型数组IntgetRecord(intrecordId,byte[]buffer,intoffset)--读取记录,返回读取的字符个数。addRecord--添加记录setRecord--更改记录deleteRcord--删除记录手机游戏的优化策略手机游戏优化的必要性输入能力受限显示区域有限存储空间有限CPU速度较慢减少游戏占有内存资源GC:垃圾回收器压缩资源文件,包括图片、声音文件等等尽量不在构造方法中对对象进行初始化工作将一些资源(包括图片)保存在文件当中尽量使用StringBuffer来代替String尽量使用静态变量,Static,可以减少5k-10k定义少量的类优化资源文件(对图片优化)压缩图片-PS-图片的格式:PNG手机游戏的优化策略合并规格相同的图片节省存储空间减少I/O操作的次数注意图片的颜色种类及分辨率保证图片的视觉效果,尽量减少图片的颜色种类及减少小图片的分辨率。手机游戏的优化策略降低游戏对CPU的消耗FPS刷新率,保证10以上。对paint()方法的优化不要在paint方法中调用精灵的声明,简单的话,不要是读取图片。写在构造方法中。局部刷新Canvas类的Clip方法可以实现局部刷新,setClip()设置矩形区域设置repaint()方法的参数来实现局部刷新减少paint()方法的调用次数,建议每50毫秒调用一次paint()方法增加逻辑操作降低CPU消耗外在优化方法考虑使用我们厂家SDK附带的API使用J2ME提供的类使用同一个监听器不要在循环语句中定义变量变量对象的重复利用“以内存换速度”手机游戏的优化策略双缓冲策略使用双缓冲避免屏幕闪烁矫正图像显示的坐标使游戏更有魅力注意控制游戏的节奏利用图片实现丰富多彩的效果使游戏能够自动调整难度使用性能优化器进行优化性能描述器-Ktoolbar手机游戏网络基础Socket-MIPDAPI流socketSocket本身是激活的并准备随时通信Socket的好处:发送信息不必要担心何时到达目标,它的通信连接始终是活动的。Socket的数据通常是在被发送后立即被传输。数据报socket更像一个拨号的因特网连接通信链路不是持续激活的数据报socket的数据被绑定在一个数据包当中网络编程和J2MEMIDlet-MIDPAPI-GCF(通用连接框架)ContentConnection:提供对web数据访问的一个流连接DatagramConnection:适用于处理面向包的通信的一个数据报的连接StreamConnection:到一个通信设备的双向连接Connector类staticConnectionopen(Stringname)CreateandopenaConnection.{scheme}:[{target}][{parms}]Scheme:网络协议的名字:http,ftp,datagramTarget:连接网络地址的名字Paramters:连接相关参数的一个列表创建数据报包包:packets数据报包的设计用来存储一个byte数组Stringmessage=“GameOver”;Byte[]bytes=message.getBytes();DatagramConnectiondc=(DatagramConnection)Connector.open(datagram://:5555);发送数据报包Datagramimportjavax.microedition.io.Connector;importjavax.microedition.io.Datagram;importjavax.microedition.io.DatagramConnection;//发送数据报包Datagramdg=null;dg=dc.newDatagram(bytes,bytes.length);//senddc.send(dg);接收数据报包DatagramConnection当中有一个receive()方法//接收数据报包dc.receive(dg);//确保数据包能够实际地容纳数据if(dg.getLength(

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功