OBJ就是指的一个个的精灵,或者说就是GBA中的小块小块的图片.它其实跟BG差不多.只是它要小一些.它也算个图层.比如GBA中的RPG游戏就喜欢把一个个的人物用OBJ来实现.这样方便控制他们的位置.当然,从GBA探索日记(-)中也可以看到BG的控制其实也是很方便的.而OBJ和BG的差别就是大小.
设置显示模式
如果你的程序里要用OBJ那么,
在设置显示模式的时候需要把DISP_OBJ_ON和DISP_OBJ_CHAR_1D_MAP加进去
*(vu16 *)REG_DISPCNT = DISP_MODE_1 | DISP_OBJ_ON | DISP_OBJ_CHAR_1D_MAP;
#define DISP_OBJ_CHAR_1D_MAP 0x0040 // OBJ Character Data 1D Mapping
#define DISP_OBJ_ON 0x1000 // OBJ ON
下面就直接来看看OBJ在GBA中怎么实现的.
首先要说明的就是OBJ在GBA中显示也是由一个个8x8的小图块拼成,跟BG一样.
共有下面12种大小.
0000: 8 x 8 1000: 8 x 16
0001: 16 x 16 1001: 8 x 32
0010: 32 x 32 1010: 16 x 32
0011: 64 x 64 1011: 32 x 64
0100: 16 x 8
0101: 32 x 8
0110: 32 x 16
0111: 64 x 32
OBJ的数据分三部分.
1.Character
它跟BG的数据格式是一样的,都是由8x8的小图块的图像数据.而且你也可以通过转换BG的工具来转换OBJ的Character.所以说BG和OBJ的数据结构基本是一样的.不过所有的OBJ总共的Character不能超过32K.
256色的OBJ能有512个Characters,每个
[1] [2] [3] [4] [5] [6] [7] 下一页