《J2ME移动软件程序设计》-卢军-电子教案 第10章

上传人:E**** 文档编号:89400959 上传时间:2019-05-24 格式:PPT 页数:19 大小:760.51KB
返回 下载 相关 举报
《J2ME移动软件程序设计》-卢军-电子教案 第10章_第1页
第1页 / 共19页
《J2ME移动软件程序设计》-卢军-电子教案 第10章_第2页
第2页 / 共19页
《J2ME移动软件程序设计》-卢军-电子教案 第10章_第3页
第3页 / 共19页
《J2ME移动软件程序设计》-卢军-电子教案 第10章_第4页
第4页 / 共19页
《J2ME移动软件程序设计》-卢军-电子教案 第10章_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《《J2ME移动软件程序设计》-卢军-电子教案 第10章》由会员分享,可在线阅读,更多相关《《J2ME移动软件程序设计》-卢军-电子教案 第10章(19页珍藏版)》请在金锄头文库上搜索。

1、第10章 J2ME游戏程序设计,J2ME移动软件程序设计,知识点: 游戏开发概述 游戏编程基本技术 响应游戏中用户的按键 使用重复按键 实例 本章导读: 本章详细介绍如何在游戏程序中响应用户输入;如何模拟实现连续按键;如何实现精灵的加速移动和连续移动;如何实现丰富多彩的屏幕显示效果;如何在支持透明图像和不支持透明图像的KVM平台上实现精灵的绘制;以及讨论网络游戏的设计。,J2ME移动软件程序设计,10.1.1 在移动电话上开发游戏的限制,10.1 游戏开发概述,不能使用透明图像。 不能抓取、拷贝和编辑屏幕上的图像。 没有填充多边形和填充三角形的方法。 不能将图像数据直接拷贝到屏幕上。 不支持浮

2、点运算。 不能进行本地API调用。,J2ME移动软件程序设计,10.1.2 在移动电话上开发游戏的利端,很多移动电话生产厂家正在研制将KVM固化在芯片上来提高J2ME的运行速度和减少KVM占用的存储空间。 一些支持J2ME的移动电话生产厂商计划在他们的手机中添加支持游戏的附加API以增强游戏的功能。 Java语言提供了自动内存垃圾搜集、面向对象支持的特色,可以极大地提高程序开发效率。,J2ME移动软件程序设计,10.2.1 MIDlet的基本结构,10.2 游戏编程基本技术,游戏程序是从javax.microedition.midlet类派生出来的。 每个MIDlet包括三个必要的方法:sta

3、rtApp()、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中,每一个按键事件将产生一个按键代

4、码。 按键代码包括数字09、星号和井号。 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()方法在物理按键和游戏按键之间转换

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

6、RepeatEvents()方法。 protected void keyRepeated(int keyCode) if (hasRepeatEvents() keyPressed(keyCode); ,J2ME移动软件程序设计,10.4.3 模拟重复按键,如果设备不支持重复按键功能,通过代码模拟重复按键。 (1)建立一个需要重复执行的任务。 (2)当按键被按下时,开始执行这一任务。 (3)以一定的频率反复执行这一任务。 (4)当按键释放时停止执行任务。 实现重复按键代码,HappyFace2.java 实现连续移动和加速移动代码,HappyFace3.java,J2ME移动软件程序设计,10

7、.5 在程序中实现屏幕滚动,用定时器实现重复按键 使用定时器实现屏幕滚动 滚动效果是通过将一副图片放置在Canvas的不同位置来实现。图片的位置可以通过在Timer类中定时地调用TimerTask的run()方法来改变。 实例,ImageScrolle.java。,J2ME移动软件程序设计,10.6 实现镜头的移动,屏幕滚动使用一个Timer来定时地移动屏幕。相当于读者坐在电影院里面看电影,人不动而画面在动。 镜头移动是依据用户的按键来改变屏幕上显示的内容。相当于读者坐在直升飞机上鸟瞰大地,大地不动而读者在动。 镜头移动的实现包含在ImagePanner类中。 ActionListener和A

8、ctionUpdater接口被用来管理按键的重复。 实例,Penning.java,J2ME移动软件程序设计,10.7.1 绘制精灵的困难,10.7 在游戏程序中绘制精灵,在标准的MIDP规范中仅支持PNG图形格式,不支持透明图形功能,而大多数厂商的手机都是遵循MIDP规范。,J2ME移动软件程序设计,两个单独的精灵图形 若空飞船飞到了UFO的上面 太空飞船和UFO重叠在一起的效果(支持透明图形) 太空飞船和UFO重叠在一起的效果(不支持透明图形) 由于不支持透明图形,当太空飞船和UFO重叠在一起时,太空飞船右上角的白色图形覆盖了UFO的一部分图形,导致图形失真。,图10-1两个单独的精灵图形

9、,图10-2支持透明图形,图10-3不支持透明图形,J2ME移动软件程序设计,10.7.2 使用setClip()方法绘制精灵,setClip()方法可以设置在屏幕上绘制图形的有效区域。只有在setClip()设置的有效区域内的屏幕才会被改变,而在setClip()设置以外的图形不会被改变。 太空飞船的图形可以分解为两个部分,通过两个部分的重叠绘制就可以得到一个完整的太空飞船的图形。,图10-5太空飞船的绘制过程示意图,图10-6使用setClip()方法后的绘制效果,J2ME移动软件程序设计,10.8 井字棋,井字棋介绍:井字棋游戏由一个33的格子构成棋盘,每个格子都有一个数字,代表按下移动电话上的这个数字按键就可以在这个格子中放置一个棋子。当按下一个移动电话上的按键在一个格子中下棋时,将在格子中画一个X或O(画X或O依赖于两个下棋者的顺序)。 井字棋实例,TicTacToe .java,J2ME移动软件程序设计,10.9 网络游戏编程,网络游戏介绍 数据通信的方法 简单的网络游戏 NumberPick 服务器端的代码,J2ME移动软件程序设计,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号