brew开发 isprite游戏接口

上传人:第*** 文档编号:49339573 上传时间:2018-07-27 格式:PPT 页数:16 大小:169.50KB
返回 下载 相关 举报
brew开发 isprite游戏接口_第1页
第1页 / 共16页
brew开发 isprite游戏接口_第2页
第2页 / 共16页
brew开发 isprite游戏接口_第3页
第3页 / 共16页
brew开发 isprite游戏接口_第4页
第4页 / 共16页
brew开发 isprite游戏接口_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《brew开发 isprite游戏接口》由会员分享,可在线阅读,更多相关《brew开发 isprite游戏接口(16页珍藏版)》请在金锄头文库上搜索。

1、游戏接口ISprite游戏接口ISprite 在游戏中,有大量的动画处理例如在游戏中,游戏主角在背景图片中来回 移动(飞机在蓝天上飞行、赛车在赛道上奔驰 )动画是通过不停地对屏幕进行显示刷新来实 现的。技术开发与应用BREW中的游戏接口ISpriteISprite接口可以使用贴图的方法绘制游戏背景 Tile及游戏主角SpriteoTile:n游戏的背景(也叫地图)oSpriten游戏中的主角(也叫精灵)o因此BREW中的ISprite接口即可以绘制游 戏中的背景地图(Tile),也可以绘制游戏中的 主角(Sprite)技术开发与应用使用ISprite接口绘制地图/主角o游戏的主角和地图都是一个

2、或者多个图块组成背景图片由6种图块(索引为0-5)拼成游戏主角是使用下面8种图块之一( 索引为0-7)技术开发与应用Tile/Sprite的图块文件o游戏的背景(地图)和主角使用的所有图块要 按照不同的尺寸,并以纵向排列的方式存放在不 同的图片文件中例如,每一个背 景图块为16*16 ,共有6种图块 ,存放在一个 16*96的bmp图 片中。每一个图 块在该BMP文件中 的索引为0-5例如,每一个精灵 图块为32*32,共 有8种图块,存放 在一个32*256的 bmp图片中,每 一个图块在该 BMP文件中的索 引为0-701234501234567技术开发与应用使用ISprite接口绘制地图

3、该地图贴图的二维矩阵如下:0,0,0,0,0,0,0,00,0,0,0,0,0,0,00,0,0,0,0,0,0,00,0,0,0,0,0,0,00,0,0,0,0,0,4,00,0,0,0,0,2,5,30,4,0,0,2,5,5,55,3,0,2,5,5,5,5。该地图贴图二维矩阵保存在一个一维数组中技术开发与应用加载Tile/Sprite图块文件过程o将图片加载到内存中buf1(ISHELL_LoadBitmap()o获取屏幕显示缓冲区IDISPLAY_GetDestination()o创建一个与屏幕显示缓冲区兼容的、并与图块文件大 小一致的缓冲区buf2 IBITMAP_CreateC

4、ompatibleBitmap()o将图片从缓冲区buf1中传输到缓冲区buf2中 IBITMAP_BltIn()o将buf2设置为绘制Tile/Sprite的缓冲区 ISPRITE_SetTileBuffer()/ISPRITE_SetSpriteBuffer()技术开发与应用Sprite的描述与绘制o一个游戏中可以同时有多个主角精灵(Sprite )o每个Sprite用一个AEESpriteCmd 类型的 结构体变量来描述其属性o一个游戏中的n个Sprite可以用一个长度为 n+1的AEESpriteCmd类型数组来存储其信息 ,前n个数组元素存放这n个Sprite的属性信息, 第n+1个

5、数组元素存放结束标志oN个Sprite可以分别绘制在4个图层中,上层 中的Sprite可以遮挡下层的Sprite技术开发与应用Sprite的描述与绘制AEESpriteCmd typedef struct int16 x;/x, y: 精灵目标左上角坐标int16 y;uint16 unTransform; /子图形变换属性组合uint8 unMatrixTransform; /转换表中的转换索引。uint8 unSpriteIndex; /要绘制的子图形图像索引。uint8 unSpriteSize; /子图形的大小。uint8 unComposite;/指定绘制子图形的方式是否透明uint

6、8 unLayer;/子图形层。 先绘制低层。 uint8 reserved5; /保留,“切记”将这些值设置为 0。 AEESpriteCmd; 注:在BREW中,精灵Sprite也称作子图形技术开发与应用Sprite的描述与绘制例如,游戏中有两个Sprite AEESpriteCmdSpriteCmd3; /-sprite-pMe-SpriteCmd0.x = 0; pMe-SpriteCmd0.y = 0; pMe-SpriteCmd0.unSpriteIndex = 0; pMe-SpriteCmd0.unSpriteSize = SPRITE_SIZE_32X32; pMe-Spri

7、teCmd0.unComposite = 0; pMe-SpriteCmd0.unLayer = 0;pMe-SpriteCmd1.x = 96; pMe-SpriteCmd1.y = 0; pMe-SpriteCmd1.unSpriteIndex = 1; pMe-SpriteCmd1.unSpriteSize = SPRITE_SIZE_32X32; pMe-SpriteCmd1.unComposite = 0; pMe-SpriteCmd1.unLayer = 1;/terminator pMe-SpriteCmd2.unSpriteSize = SPRITE_SIZE_END;技术开发

8、与应用Sprite的描述与绘制oSprite的绘制o当需要在屏幕上绘制Sprite时,使用 ISPRITE_DrawSprites()函数,并使用 IDISPLAY_Update()函数更新o例如上例:ISPRITE_DrawSprites(pMe-pISprite, pMe-SpriteCmd);IDISPLAY_Update(pMe-pIDisplay);技术开发与应用Tile的描述与绘制o游戏中的背景(地图)是由许多小的图块(Tile )拼组而成的o游戏的背景(地图)可以比显示屏幕大o例如一个512*256像素的地图,每个图块的大 小为16*16像素,则该地图是由32* 16 个的图 块

9、组成的o一个游戏可以有多个背景(地图)(即多层背景 )o每一个背景用一个AEETileMap 类型的结构体 变量来记录其属性信息技术开发与应用Tile的描述与绘制o一个游戏中的n个背景可以用一个长度为n+1 的AEETileMap类型数组来存储其信息,前n个 数组元素存放这n个背景的属性信息,第n+1个 数组元素存放结束标志技术开发与应用Tile的描述与绘制oAEETileMap typedef struct uint16 *pMapArray; /图块索引和属性数组。 它是二维贴图的一维表示uint32 unFlags; /应用于整个地图的标记, MAP_FLAG_WRAPuint32 re

10、served4;/保留以备将来使用。 切记将它们设置为零。 int32 x; int32 y; /屏幕坐标,在此坐标处将绘制背景的左上角uint16 w; uint16 h;/地图尺寸,图块单位,使用MAP_SIZE_ 值uint8 unTileSize; /图块的大小。 它是 TILE_SIZE_ 值之一uint8 reserved23;/保留以备将来使用。 切记将它们设置为零 AEETileMap; n其中pMapArray是地图对于贴图图块二维贴图的一维表示,例如一个 512*256像素的地图,该地图由6种图块组成,图块的大小为16*16像素,则该 地图一共由32* 16 =512个的图

11、块组成的。可以使用一个长度为512的一维数组 记录每一个图块的索引(0-5)。技术开发与应用Tile的描述与绘制oTile的绘制ISPRITE_DrawTile()o该函数依次绘制AEETileMap数组中的每一 个地图,上层的地图(后绘制的)会遮挡先绘制 的地图技术开发与应用Sprite/Tile的绘制oISPRITE_SetDestination() o在调用ISPRITE_DrawSprites() 或者 ISPRITE_DrawTile()绘制游戏主角/地图之前,应 当设置ISprite接口绘制的目标区域o例如:IBitmap*pbmpScreen;/获取屏幕显示缓冲区pbmpScreen = IDISPLAY_GetDestination(pMe-pIDisplay);/将屏幕显示缓冲区设置为ISprite绘制的目标区域ISPRITE_SetDestination(pMe-pISprite, pbmpScreen);IBITMAP_Release(pbmpScreen);技术开发与应用

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

当前位置:首页 > 建筑/环境 > 工程造价

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