ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:36.13KB ,
资源ID:2781292      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2781292.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(J2ME游戏.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

J2ME游戏.docx

1、J2ME游戏 2010年3月11日 星期四 庚寅年 一月廿六 【虎】戊寅月 庚申日 我要投稿 会员中心 【设为首页】【收藏本站】雨枫技术教程网 高级搜索 TAG标签 网站地图 RSS订阅 首 页JAVAWEB教程JavaScriptUnix/Linux数据库ERPPhotoShop程序设计软件工程电脑网络交流论坛本站公告: 雨枫技术论坛正式开通!繁體中文 我要留言Struts JAVA基础 Spring JSF Hibernate JAVA网络 XML J2ME EJB Javamail 开发工具 Java高级 文件操作 Java视频 调色教程 DivCSS教程 CSS布局实例 CSS教程 X

2、HTML教程 Web标准教程 浏览器兼容教程 Apache教程 WEB工具 Html教程 JS教程 JS共享 Jquery Prototype Ajax ExtJs dojo 其它JS框架 网页特效 表单特效 JS手册 JS工具 Linux基础 Linux命令 Linux安装 Linux嵌入式 Linux编程 Linux管理 Linux内核 Linux桌面 Linux软件 BSD Redhat Linux ubuntu linux Solaris IBM AIX SCO unix Linux视频 MySQL SQL Server Oracle DB2 数据仓库 数据库理论 ERP咨询 OA E

3、RP实施 ERP选型 ERP综合理论 信息化案例 信息化方案 ERP财务成本 ERP生产计划 ERP存货物流 ERP沙盘模拟 CRM 信息安全 PhotoShop基础 经典合成 调色教程 抠图教程 照片处理 鼠绘教程 文字特效 签名溶图 GIF 动画 非 主 流 滤镜特效 创意设计 PS视频 PHP CC+c# Visual Basic .netAsp Java Shell Perl 测试技术 项目管理 CMMI/CMM SOA 构件与中间件 UML 软件架构 需求工程 分析与建模 配置管理 质量保证 软件过程 操作系统 网络技术 电脑应用 安全技术 软件应用 云计算 免费资源 本站公告: 雨

4、枫技术论坛正式开通!繁體中文 我要留言搜索 智能模糊搜索 仅搜索标题搜索 热门标签Windows 7 Windows 2008 云计算 Office 2010 QQ 2010 C# 当前位置: 主页 JAVA J2ME J2ME中文教程 6 GAME API J2ME中文教程 6 GAME API时间:2009-03-11 19:14 点击:281次 字体:大 中 小 -6.1 游戏 API 简介 MIDP 2.0 相对于 1.0 来说,最大的变化就是新添加了用于支持游戏的 API ,它们被放在 javax.microedition.lcdui.game 包中游戏 API 包提供了一系列针对无

5、线设备的游戏开发类由于无线设备仅有有限的计算能力,因此许多 API 的目的在于 WwW.fengfly.Com 项目管理 6.1 游戏API简介MIDP 2.0相对于1.0来说,最大的变化就是新添加了用于支持游戏的API,它们被放在javax.microedition.lcdui.game包中。游戏API包提供了一系列针对无线设备的游戏开发类。由于无线设备仅有有限的计算能力,因此许多API的目的在于提高Java游戏的性能,并且把原来很多需要手动编写的代码如屏幕双缓冲、图像剪裁等都交给API间接调用本地代码来实现。各厂家有相当大的自由来优化它们。 游戏API使用了MIDP的低级图形类接口(Gr

6、aphics,Image,等等)。整个game包仅有5个Class: GameCanvas这个类是LCDUI的Canvas类的子类,为游戏提供了基本的“屏幕”功能。除了从Canvas继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力,同步图像输出;这些功能简化了游戏开发并提高了性能。 LayerLayer类代表游戏中的一个可视化元素,例如Sprite或TiledLayer是它的子类;这个抽象类搭好了层(Layer)的基本框架并提供了一些基本的属性,如位置,大小,可视与否。出于优化的考虑,不允许直接产生Layer的子类(不能包外继承)。 LayerManager对于有着许

7、多Layer的游戏而言,LayerManager通过实现分层次的自动渲染,从而简化了游戏开发。它允许开发者设置一个可视窗口(View Window),表示用户在游戏中可见的窗口; LayerManager自动渲染游戏中的Layer,从而实现期望的视图效果。 SpriteSprite又称“精灵”,也是一种Layer,可以显示一帧或多帧的连续图像。但所有的帧都是相同大小的,并且由一个Image对象提供。Sprite通过循环显示每一帧,可以实现任意顺序的动画;Sprite类还提供了许多变换(翻转和旋转)模式和碰撞检测方法,能大大简化游戏逻辑的实现。 TiledLayerTiledLayer又称“砖块

8、”,这个类允许开发者在不必使用非常大的Image对象的情况下创建一个大的图像内容。TiledLayer有许多单元格构成,每个单元格能显示由一个单一Image对象提供的一组贴图中的某一个贴图。单元格也能被动画贴图填充,动画贴图的内容能非常迅速地变化;这个功能对于动画显示非常大的一组单元格非常有用,例如一个充满水的动态区域。 在游戏中,某些方法如果改变了Layer,LayerManager,Sprite和TiledLayer对象的状态,通常并不能立刻显示出视觉变化。因为这些状态仅仅存储在对象里,只有当随后调用我们自己的paint()方法时才会更新显示。这种模式非常适合游戏程序,因为在一个游戏循环中

9、,一些对象的状态会更新,在每个循环的最后,整个屏幕才会被重绘。基于轮询也是现在视频游戏的基本结构。 6.2 GameCanvas的使用GameCanvas类提供了基本的游戏用户接口。除了从Canvas继承下来的特性(命令,输入事件等)以外,它还提供了专门针对游戏的功能,比如后备屏幕缓冲和键盘状态查询的能力。 每个GameCanvas实例都会有一个为之创建的专用的缓冲区。因为每个GameCanvas实例都会有一个唯一的缓冲区。可以从GameCanvas实例获得其对应的Graphics对象,而且,只有对Graphics对象操作,才会修改缓冲区的内容。外部资源如其他的MIDlet或者系统级的通知都不

10、会导致缓冲区内容被修改。该缓冲区在初始化时被填充为白色。 缓冲区大小被设置为GameCanvas的最大尺度。然而,当请求填充时,可被填充的区域大小会受限于当前GameCanvas的尺度,一个存在的Ticker,Command等等都会影响到GameCanvas的大小。GameCanvas的当前大小可以通过调用getWidth和getHeight获得。 一个游戏可能提供自己的线程来运行游戏循环。一个典型的循环将检查输入,实现游戏逻辑,然后渲染更新后的用户界面。以下代码演示了一个典型的游戏循环的结构: / 从后备屏幕缓冲获得Graphics对象 Graphics g = getGraphics();

11、 while (true) / 检查用户输入并更新位置,如果有需要 int keyState = getKeyStates(); if (keyState & LEFT_PRESSED) != 0) sprite.move(-1, 0); else if (keyState & RIGHT_PRESSED) != 0) sprite.move(1, 0); / 将背景清除成白色 g.setColor(0xFFFFFF); g.fillRect(0,0,getWidth(), getHeight(); / 绘制Sprite(精灵) sprite.paint(g); / 输出后备缓冲区的内容 fl

12、ushGraphics(); 6.2.1 绘图要创建一个新的GameCanvas实例,只能通过继承并调用父类的构造函数:protected GameCanvas(boolean suppressKeyEvents),这将使为GameCanvas准备的一个新的缓冲区也被创建并在初始化时被填充为白色。 为了在GameCanvas上绘图,首先要获得Graphics对象来渲染GameCanvas:protected Graphics getGraphics()返回的Graphics对象将用于渲染属于这个GameCanvas的后备屏幕缓冲区(off-screen buffer)。 但是渲染结果不会立刻显

13、示出来,直到调用flushGraphics()方法;输出缓冲区的内容也不会改变缓冲区的内容,即输出操作不会清除缓冲区的像素。 每次调用这个方法时,都会创建一个新的Graphics对象;对于每个GameCanvas实例,获得的多个Graphics对象都将渲染同一个后备屏幕缓冲区。因此,有必要在游戏启动前获得并存储Graphics对象,以便游戏运行时能反复使用。 刚创建的Graphics对象有以下属性:l 渲染目标是这个GameCanvas的缓冲区;l 渲染区域覆盖整个缓冲区;l 当前颜色是黑色(black);l 字体和调用Font.getDefaultFont()返回的相同;l 绘图模式为SOL

14、ID;l 坐标系统的原点定位在缓冲区的左上角。 在完成了绘图操作后,可以使用flushGraphics()方法将后备屏幕缓冲区的内容输出到显示屏上。输出区域的大小与GameCanvas的大小相同。输出操作不会改变后备屏幕缓冲区的内容。这个方法会直到输出操作完成后才返回,因此,当这个方法返回时,应用程序可以立刻对缓冲区进行下一帧的渲染。 如果GameCanvas当前没有被显示,或者系统忙而不能执行输出请求,这个方法不做任何事就立刻返回。 6.2.2 键盘如果需要,开发者可以随时调用getKeyStates方法来查询键的状态。getKeyStates()获取游戏的物理键状态。返回值的每个比特位都表示设备上的一个特定的键。如果一个键对应的比特位的值为1,表示该键当前被按下,或者自上次调用此方法后到现在,至少被按下过一次。如果一个键对应的比特位的值为0,表示该键当前未被按下,并且自上次调用此方法后到现在从未被按下过。这种“闭锁行为(latching behavior)”保证一个快速的按键和释放总是能够在游戏循环中被捕获,不管循环有多慢。下面是获取游戏按键的示例: / 获得键的状态并存储 int keySta

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1