手机游戏开发入门课件

上传人:aa****6 文档编号:54535934 上传时间:2018-09-14 格式:PPT 页数:34 大小:1.04MB
返回 下载 相关 举报
手机游戏开发入门课件_第1页
第1页 / 共34页
手机游戏开发入门课件_第2页
第2页 / 共34页
手机游戏开发入门课件_第3页
第3页 / 共34页
手机游戏开发入门课件_第4页
第4页 / 共34页
手机游戏开发入门课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《手机游戏开发入门课件》由会员分享,可在线阅读,更多相关《手机游戏开发入门课件(34页珍藏版)》请在金锄头文库上搜索。

1、J2ME手机游戏开发入门,2,主要内容,手机平台的特点 J2ME的优势和劣势 J2ME程序的运行环境 J2ME程序的开发环境 游戏的种类 游戏程序的基本功能 J2ME游戏开发关键的包和类 J2ME游戏开发实战,3,程序的本质,1、指令1 2、指令2 ,程序,程序,程序,程序,CPU,程序是指令的集合程序通过调用CPU的指令实现功能,4,现代程序,5,手机平台,硬件环境不同:不同的CPU,不同的指令集 软件环境不同:不同的操作系统,6,开发手机程序,麻 烦!,7,解决的办法,利用Java跨平台的特性 只要手机支持Java,就可以运行Java程序 但是,Java也有着显著的劣势:运行效率低,特别是

2、在受限环境中,8,Java平台,9,J2ME开发平台,Java虚拟机,Configuration,Profile,10,开发环境,J2SE-1_5_0 J2ME Wireless Toolkit 2.5 Eclipse 3.4.0 Release版 EclipseMe 1.7,11,CLDC和MIDP,J2ME平台定义了两个底层配置CDC和CLDC CDC(Connect Device Configuration,连接设备配置)规范用于比PC机小、但同时具有多于 512K内存的设备,这一类设备包括互联网络电视系统、机顶盒、POS系统、汽车导航以及娱乐系统 CLDC(Connected Limi

3、ted Device Configuration ,有限连接设备配置)规范应用于内存128K到 512K之间的消费类电子设备, 这一类别中典型的代表设备包含呼叫器、移动电话、个人数字助理PDA和POS终端等 MIDP:移动信息设备简表,是J2ME补充CLDC配置的Java API集合,也是基于CDLC的最上层。MIDP为开发者提供了计时器、简单固定存储器、通过 HTTP 的连网等常用API。,12,游戏种类,13,游戏程序的基本功能,绘制动画 碰撞检测 AI,14,J2ME游戏开发主要的包和类,游戏开发的类都在包: javax.microedition.lcdui.game 主要的类 Game

4、Canvac Sprite Layer LayerManager TiledLayer,15,准备开始,准备好开发环境 安装J2SE-1_5_0 安装J2ME Wireless Toolkit 2.5 安装Eclipse 3.4.0 Release版 安装EclipseMe 1.7 配置Eclipse手机开发环境,16,先热一热身,搭建J2ME程序框架 绘制一幅背景 绘制一个精灵 让精灵动起来 看看碰撞的效果,17,先写一个Midlet,在手机上运行的Java程序叫:MIDlet 创建一个MIDlet的步骤:,18,Midlet组成分析,import javax.microedition.mi

5、dlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException;public class MyMidlet extends MIDlet public MyMidlet() / 构造函数,初始化数据protected void destroyApp(boolean arg0) throws MIDletStateChangeException / 程序结束执行,释放资源protected void pauseApp() / 暂停程序protected void startApp() throws MIDletSt

6、ateChangeException / 启动程序,引入Midlet的包,结束程序,暂停程序,启动程序,都要继承,演示示例1:第一个 Midlet,19,游戏背景图形,游戏背景图片不是一整块,而是由很多小图片组成,原因: 节约内存资源 需要碰撞检测,比如哪些地形可以通行,哪些不能通行;哪里可以被子弹击毁,哪里不怕子弹等等 J2ME游戏包提供了下面的类绘制游戏背景 Display GameCanvas TiledLayer,20,绘制游戏背景图形,要在程序中显示图像,需要显示器:Display。显示器并不能直接汇制图像,需要将图像绘制在画布:GameCanvas。然后将画布显示出来 TiledL

7、ayer负责管理绘制游戏背景,可以将小图片整合成一张游戏背景,演示示例2:绘制游戏背景,21,绘制精灵,游戏精灵就是一个图片,一个会动的图片 J2ME提供了Sprite类绘制和控制精灵,演示示例3:绘制精灵,22,关键代码,/ 精灵图片 Image roleImg = null; roleImg = Image.createImage(“/role.png“); ./ 构建精灵(21*35) role = new Sprite(roleImg,21,35);/ 精灵初始位置在中间 int roleX = this.getWidth() / 2; int roleY = this.getHeig

8、ht()/2; role.setRefPixelPosition(roleX, roleY); this.role.paint(g);this.flushGraphics();,23,动画的原理,系列动作的图片连续绘出,24,精灵动画,左行,前行,后行,右行,25,让精灵动起来,setFrame(int index) 显示哪一帧,设置动画开始的画面 nextFrame() 显示下一帧 Move(int dx,int dy) 在x和y方向上移动,Sprite的方法,(this.getKeyStates() & GameCanvas.LEFT_PRESSED)!=0 是否按下左方向键 (this.

9、getKeyStates() & GameCanvas.RIGHT_PRESSED)!=0 是否按下右方向键 (this.getKeyStates() & GameCanvas.UP_PRESSED)!=0 是否按下上方向键 (this.getKeyStates() & GameCanvas.DOWN_PRESSED)!=0 是否按下下方向键 (this.getKeyStates() & GameCanvas.FIRE_PRESSED)!=0 是否按下开火键,获取用户按键的方法,26,向左移动,if(this.getKeyStates() ,注意:需要降低循环的速度,27,向右移动,if(th

10、is.getKeyStates() ,28,向上移动,if(this.getKeyStates() ,29,向下移动,if(this.getKeyStates() ,30,碰撞检测,collidesWith(Sprite s, boolean pixelLevel ) 是否和其他的精灵碰撞了 collidesWith(TiledLayer t, boolean pixelLevel ) 是否和背景层某一个单元格碰撞了,Sprite为我们提供了如下的碰撞检测方法,31,关键代码,if(role!=null) if(this.role.collidesWith(bomb, false)this.e

11、xplosion.setPosition(role.getX()-16, role.getY()-16);System.out.println(“碰到炸弹了“);for(int i=0;i8;i+)this.explosion.nextFrame();this.explosion.paint(g);try Thread.sleep(30); catch (InterruptedException e) e.printStackTrace();this.role = null;this.bomb = null; ,32,打包,33,游戏实战突破重围,34,程序架构,FlyMidlet 游戏主程序 MyGameCanvas 游戏画布,处理所有的游戏逻辑 GameObject 自己封装的精灵基类,封装了游戏精灵的通用操作,比如生命周期,动画绘制,复位等 Navigate 管理画布和画布的显示 Bullets 子弹类,GameObject的子类,封装了子弹的操作 Font 工具类,处理字符和字符串的绘制工作 ImageTools 工具类,处理图片的创建 StringTools 工具类,处理游戏信息的显示,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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