精品ppt课件《j2me编程》第6章游戏编程致.pptVIP

  • 1
  • 0
  • 约5.91千字
  • 约 39页
  • 2016-09-25 发布于湖北
  • 举报

精品ppt课件《j2me编程》第6章游戏编程致.ppt

精品ppt课件《j2me编程》第6章游戏编程致.ppt

第6章 MIDP游戏编程 在MIDP2.0规范中,提供了许多针对游戏的新特性,这些功能都是通过一个新增的javax.microedition.lcdui.game包来实现的。这个包里定义了用于游戏开发的五个类。 6.1 游戏画布 游戏画布为游戏中图形界面的设计和交互系统的实现提供了一些基本的方法。GameCanvas类是从Canvas 类继承而来的一个抽象类。它的功能主要体现在两个方面;一是支持使用脱机屏幕缓冲区绘制图形,二是支持主动查询按键状态来响应用户在游戏中的输入。 由于GameCanvas类是一个抽象类,因此必须通过派生一个新类的方法来使用它,另外,为了使游戏主体反复运行,通常在此派生类中实现Runnable接口,将它的对象作为线程来运行,或者在程序中加入定时器,重复执行定时器任务。 使用时只需将方法的返回值与这些常量进行按位与操作,然后根据计算结果就可以判断出对应的键是否曾经被按下。 6.2 图 层 图层主要用于实现游戏中各式各样的对象,背景、角色、道具等。它可以移动、实现动画,图层之间还可以相互覆盖,相互作用。 图层是一个抽象类,不能直接使用它,必须通过它派生新类。在game包中已经有两个它的派生类:TiledLayer 类和Sprite类。 分块图层(TiledLayer) 类,主要用于实现游戏中的背景。 精灵(Sprite)类,主要用于实现游戏中各种移动的主体。 6.3 分 块 图 层 分块图层(TiledLayer)中提供了一个种方法,将组成背景图像的基本图像部分提取出来存储为图像分块,再将背景图层划分为图像分块大小相同的单元格,只要向单元格中填充相应的图像分块就能实现大幅的背景图像了,这样既减少了所需的存储空间又能灵活地改变背景图像。 6.3.1 基本概念 1、图像分块 作为组成背景图像的基本内容,分块图层中所有的图像分块要从一个图像中获取。只要告知分块的大小,在建立对象时会自动进行划分。划分遵循从左至右、从上至下的原则,并且每一个分块都会被分配一个唯一的索引号,号码从1开始连续分配。另外,索引号为0的分块内容为空,表示透明区域。 对于一个图像而言,只要指定了分块的大小 ,图像分块的划分方法是固定的。因为这些分块、图像和索引号之间的对应关系是固定的,这些分块也被叫做静态分块。 TiledLayer myTiledLayer = new TiledLayer 12, 4, img, 32, 32 ; 2、单元格 在建立TiledLayer对象时,除了指定用于分块的图像和分块的大小外,还需指明分块图层的大小 。整个分块图层是由若干单元格组成的一个二维表格。每个单元格中存放一个分块的索引号,表示该区域由相应的分块来填充,在显示分块图层时,再将单元格区域所对应的分块图像显示出来。单元格的索引号从0开始分配。 TiledLayer myTiledLayer = new TiledLayer 12, 4, img, 32, 32 ; int[ ] map 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 3, 0, 0, 0, 0, 1, 2, 2, 1, 4, 4, 4, 4, 3, 0, 0, 1, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ; for int i 0; i map.length; i++ int column i % 12; int row i - column / 12; tiledLayer.setCell column,row,map[i] ; 7.4 精 灵 try spriteImage Image.createImage spritePic.png ; catch Exception e Sprite mySprite new Sprite spriteImage, 32, 12 ; int [ ] sq 0, 1, 2, 1, 0, 1, 2, 1, 0, 1, 2, 1, 1, 1, 1, 1, 1 ; mySprite.setFrameSequence sq ; 6.4.2 碰撞检测 除了实现动画效果,在游戏设计中,有时还需要判断两个或多个游戏主体在运动时它们之间是否发生了碰撞,即代表主体的图像之间是否发生了重叠。在精灵类中也已经预定义了一组方法来实现游戏对象的碰撞检测。 6.4.3 精灵的移动和旋转 除了可以使用从图层类中继承setPosition 和move 的方法来移动精灵外,在精灵类中还提供了一些新的方法来控制移动和旋转。 在一个游戏中,经常需要使用多个图层来形成游戏画面,这

文档评论(0)

1亿VIP精品文档

相关文档