第12章MIDP游戏编程课件.ppt

上传人(卖家):ziliao2023 文档编号:5873518 上传时间:2023-05-13 格式:PPT 页数:17 大小:149.51KB
下载 相关 举报
第12章MIDP游戏编程课件.ppt_第1页
第1页 / 共17页
第12章MIDP游戏编程课件.ppt_第2页
第2页 / 共17页
第12章MIDP游戏编程课件.ppt_第3页
第3页 / 共17页
第12章MIDP游戏编程课件.ppt_第4页
第4页 / 共17页
第12章MIDP游戏编程课件.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、第12章 MIDP游戏编程主讲教师:贾震斌本章目录 12.1 MIDP 2.0 Game API 概述 12.2 游戏容器GameCanvas类 12.3 游戏精灵Sprite 12.4 游戏地图TiledLayer类 12.5 图层管理LayerManager类 12.6 游戏实例:蜜蜂射击本章学习目标 了解MIDP游戏编程基本概念、常用类及方法、基本程序框架12.1 MIDP 2.0 Game API 概述12.1.1 Game API类库简介MIDP提供了GameCanvas类库实现游戏编程所需功能,GameCanvas是Canvas的扩展为了便于操控图像,可以使图像中不同的内容位于不同

2、的层面上,这就是图层的概念,如让人物和背景位于不同的图层上。对每一图层可以分别管理、操控。为此,MIDP提供了图层功能,图层由类Layer实现,而多个图层的管理又由LayerManger类负责。不同的图层叠加在一起形成了一个完整的图像。由于受屏幕大小限制,图像可能无法完全显示出来,LayerManger类提供了观察窗口View Window,通过移动观察窗口实现图像不同部分的显示。图层中有两个特殊图层:Sprite和TiledLayer,Sprite存放游戏角色,TiledLayer存放游戏背景12.2 游戏容器GameCanvas类 12.2.1 屏幕缓冲 每一个GameCanvas对象创建

3、时首先在内存中开辟屏幕大小的缓冲区,在缓冲区中绘制图形,需要时再将缓冲区内容复制到屏幕上GameCanvas使用过程 创建GameCanvas对象,同时在内存中创建缓冲区 建立Graphics对象,调用GameCanvas的getGraphics()方法,获得Graphics对象,通过Graphics对象往内存中绘图,绘图过程与Canvas中不同的是绘图过程不一定要在paint()方法中 调用GameCanvas的flushGraphics()方法将图像送到屏幕上12.2.2 获得键盘输入状态 利用继承于Canvas类的键盘按键事件 利用Game Canvas专用的getKeyStates()

4、方法。可以取得多个同时按下的键值的组合 键值常量,参见教材p.20812.3 游戏精灵Sprite 12.3.1 帧控制 Sprite是Layer类的子类,负责主要角色图层,这个图层由一个个图像组合起来,每一个图像称为一帧,每一帧图像按照一定时间间隔显示出来形成动画 创建帧的方法如下:Sprite(Image image,int framWeidth,int frameHeight)帧的顺序也就是帧的索引值从0开始,Sprite提供了切换顺序的方法 void setFrame(int sequenceIndex)void nextFrame()void prevFrame()12.3.2 精灵

5、翻转 图像可以以任何位置为中心旋转,Sprite提供了方法,如:void defineReferencePixel(int x,int y)void setRefPixelPosition(int x,int y)12.3.3 碰撞检测在GameCanvas中可以通过collidesWith()方法的不同参数的重载形式检测Sprite与Image、Sprite与Sprite、Sprite与TiledLayer之间是否相遇(即碰撞检测),方法如下:boolean collidesWith(Image image,int x,int y,boolean pixelLevel)Checks for

6、a collision between this Sprite and the specified Image with its upper left corner at the specified location.boolean collidesWith(Sprite s,boolean pixelLevel)Checks for a collision between this Sprite and the specified Sprite.boolean collidesWith(TiledLayer t,boolean pixelLevel)Checks for a collisio

7、n between this Sprite and the specified TiledLayer.其中参数pixelLevel表示检测模式,在MIDP 2.0 中定义了两种模式:像素模式和边界模式。像素模式用于两个不透明的像素重叠的碰撞检测,而边界模式用于边界相接时表示相遇的情况。12.4 游戏地图TiledLayer类 12.4.1 游戏中的地图 Sprite将屏幕分成大小相同的网格,在每个网格里面显示一张图像,每个图像都会有一个索引值,然后组合成一个完整的图像,这种方式适合用于一个图像,并且图像很复杂的情况。TiledLayer也是将一个大图像分割成网格状,形成很多小的图像,按照需要将

8、一些小图像组合起来,形成一个完整的图像。TiledLayer在分网格的时候,这些分割成的小图像都有一个索引值,索引时有动态和静态之分,静态索引值从1开始计数,动态索引值从-1开始计数,动态索引值和静态索引值之间存在关联。TiledLayer类 构造函数:TiledLayer(int columns,int rows,Image image,int tileWidth,int tileHeight)参数说明:int columns:网格的列数 int rows:网格的行数 Image image:被分割的图像 int tileWidth:分割的小图宽度 int tileHeight:分割的小图高

9、度 注:构造函数获得的是静态网格TiledLayer类 获得与静态网络关联的动态网格的方法:void setAnimatedTile(int animatedTileIndex,int staticTileIndex)将Tiley放到指定的网络里:void setCell(int col,int row,int tileIndex)将Tiley放到指定区域的网络里:void fillCells(int col,int row,int numCols,int numRows,int tileIndex)12.5 图层管理LayerManager类 图层的概念就是将图像分层处理叠加显示形成完整游戏

10、图像,图层用Layer类处理,各图层的管理由LayerManager负责。LayerManager类的方法 将各图层添加到屏幕上:void append(Layer layer)删除某个图层:void remove(Layer layer)插入某个图层:void insert(Layer layer,int index)设置视图观察窗口:void setViewWindow(int x,int y,int width,int height)图层显示:void paint(Graphics g,int x,int y)Layer类的方法 将图层添加到画布上:void setPosition(int x,int y)移动图层:void move(int dx,int dy)显示或隐藏图层:void setVisible(boolean visible)12.6 游戏实例:蜜蜂射击 略

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第12章MIDP游戏编程课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|