《J2ME移动软件程序设计》课件第10章_第1页
《J2ME移动软件程序设计》课件第10章_第2页
《J2ME移动软件程序设计》课件第10章_第3页
《J2ME移动软件程序设计》课件第10章_第4页
《J2ME移动软件程序设计》课件第10章_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

知识点:游戏开发概述游戏编程基本技术响应游戏中用户的按键使用重复按键实例本章导读:

本章详细介绍如何在游戏程序中响应用户输入;如何模拟实现连续按键;如何实现精灵的加速移动和连续移动;如何实现丰富多彩的屏幕显示效果;如何在支持透明图像和不支持透明图像的KVM平台上实现精灵的绘制;以及讨论网络游戏的设计。J2ME移动软件程序设计10.1.1在移动电话上开发游戏的限制

10.1游戏开发概述

不能使用透明图像。不能抓取、拷贝和编辑屏幕上的图像。没有填充多边形和填充三角形的方法。不能将图像数据直接拷贝到屏幕上。不支持浮点运算。不能进行本地API调用。J2ME移动软件程序设计10.1.2在移动电话上开发游戏的利端很多移动电话生产厂家正在研制将KVM固化在芯片上来提高J2ME的运行速度和减少KVM占用的存储空间。一些支持J2ME的移动电话生产厂商计划在他们的手机中添加支持游戏的附加API以增强游戏的功能。Java语言提供了自动内存垃圾搜集、面向对象支持的特色,可以极大地提高程序开发效率。

J2ME移动软件程序设计10.2.1MIDlet的基本结构10.2游戏编程基本技术

游戏程序是从javax.microedition.midlet类派生出来的。每个MIDlet包括三个必要的方法:startApp()、pauseApp()和destroyApp()方法。游戏MIDlet中通常需要在屏幕上绘制图形,这就必须使用Display对象。

J2ME移动软件程序设计10.2.2使用Canvas对象绘制图形在Canvas对象中,必须实现paint()方法。在paint()方法中使用drawArc()、drawImage()、drawLine()、drawRect()、drawString()、fillRect()等方法,可以在屏幕上绘制出用户需要的图形。J2ME移动软件程序设计10.3.1按键事件

10.3响应游戏中用户的按键

在MIDP中,每一个按键事件将产生一个按键代码。按键代码包括数字0~9、星号和井号。

KEY_NUM0、KEY_NUM1、KEY_NUM2、KEY_NUM3、KEY_NUM4、KEY_NUM5、KEY_NUM6、KEY_NUM7、KEY_NUM8、KEY_NUM9、KEY_STAR和KEY_POUND。J2ME移动软件程序设计10.3.2游戏按键

在MIDP中定义的游戏按键:DOWN、UP、LEFT、RIGHT、FIRE、GAME_A、GAME_B、GAME_C和GAME_D。上述游戏按键在不同的移动设备上是由不同的物理按键代表的。为了在程序中保证可移植性,就应该使用getGameAction()方法在物理按键和游戏按键之间转换。J2ME移动软件程序设计10.3.3实例

响应键盘事件实例,KeyEvent.javaJ2ME移动软件程序设计10.4.1简述

10.4使用重复按键重复按键功能实际上是当用户按下一个按键时就开始执行一个功能,直到用户释放按键为止。当按键一直没有释放时,这个功能将一直将被反复地执行,按键重复的频率在不同的设备中是不同的。在很多情况下程序中需要使用重复按键功能。如在射击类的游戏中,用户需要使用UP键移动游戏中的飞机向上飞行。通过MIDP的编程来模拟重复按键功能。J2ME移动软件程序设计10.4.2判断系统是否支持重复按键

测试设备是否支持重复按键功能可以使用hasRepeatEvents()方法。

protectedvoidkeyRepeated(intkeyCode){if(hasRepeatEvents()){keyPressed(keyCode);}}J2ME移动软件程序设计10.4.3模拟重复按键

如果设备不支持重复按键功能,通过代码模拟重复按键。

(1)建立一个需要重复执行的任务。(2)当按键被按下时,开始执行这一任务。(3)以一定的频率反复执行这一任务。(4)当按键释放时停止执行任务。实现重复按键代码,HappyFace2.java实现连续移动和加速移动代码,HappyFace3.javaJ2ME移动软件程序设计10.5在程序中实现屏幕滚动用定时器实现重复按键使用定时器实现屏幕滚动滚动效果是通过将一副图片放置在Canvas的不同位置来实现。图片的位置可以通过在Timer类中定时地调用TimerTask的run()方法来改变。实例,ImageScrolle.java。J2ME移动软件程序设计10.6实现镜头的移动

屏幕滚动使用一个Timer来定时地移动屏幕。相当于读者坐在电影院里面看电影,人不动而画面在动。镜头移动是依据用户的按键来改变屏幕上显示的内容。相当于读者坐在直升飞机上鸟瞰大地,大地不动而读者在动。镜头移动的实现包含在ImagePanner类中。ActionListener和ActionUpdater接口被用来管理按键的重复。实例,Penning.java

J2ME移动软件程序设计10.7.1绘制精灵的困难

10.7在游戏程序中绘制精灵

在标准的MIDP规范中仅支持PNG图形格式,不支持透明图形功能,而大多数厂商的手机都是遵循MIDP规范。J2ME移动软件程序设计两个单独的精灵图形若空飞船飞到了UFO的上面太空飞船和UFO重叠在一起的效果(支持透明图形)太空飞船和UFO重叠在一起的效果(不支持透明图形)由于不支持透明图形,当太空飞船和UFO重叠在一起时,太空飞船右上角的白色图形覆盖了UFO的一部分图形,导致图形失真。图10-1两个单独的精灵图形图10-2支持透明图形图10-3不支持透明图形J2ME移动软件程序设计10.7.2使用setClip()方法绘制精灵

setClip()方法可以设置在屏幕上绘制图形的有效区域。只有在setClip()设置的有效区域内的屏幕才会被改变,而在setClip()设置以外的图形不会被改变。太空飞船的图形可以分解为两个部分,通过两个部分的重叠绘制就可以得到一个完整的太空飞船的图形。图10-5太空飞船的绘制过程示意图图10-6使用setClip()方法后的绘制效果J2ME移动软件程序设计10.8井字棋井字棋介绍:井字棋游戏由一个3×3的格子构成棋盘,每个格子都有一个数字,代表按下移动电话上的这个数字按键就可以在这个格子中放置一个棋子。当按下一个移动电话上的按键在一个格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论