请问NDS支持的16位调色板是哪些?



blijiang
2009-04-01 14:03:17

编写NDS程序,加载显示一些图片资源,却报告说standard palette is exhausted!
想请问该如何创建16色的图像,以便加载不会报错?
NDS支持的16位调色板是哪些?


niubo_
2009-04-01 16:17:36

DS每个屏有一个256色的16位调色板,它可以看做一个16×16的方阵,所以同时它也是16个16色调色板。不过很不幸DS只支持16位和256色的位图背景,如果非要用16色的图片只能用图块(Tile)背景了。

用grit可以将图片转换成16色图块背景。不会写配置文件在编译时转换的话可以去下载一个Windows版本,在图形前端下转换好,放在自己的程序里,分别加载tile数据、map数据和调色板数据就可以了。


blijiang
2009-04-02 17:02:24

请问您所说的“分别加载tile数据、map数据和调色板数据“是何意思?
一张图片,其map数据指的是?调色板数据又指的是?


niubo_
2009-04-02 20:21:34

用wingrit转换出来的文件(假定是默认的一个.h文件和一个.s文件),打开.h文件可以发现声明了三个数组,分别是图片的文件名加上Map, Tiles和Pal,那个.s文件中就是这三个数组的数据了。
Tiles呢就是一个个8×8的小图块,Map中的数据就是Tiles的编号(还有其他一些信息),根据Map数据就可以找到相应位置应该是哪个图块,调色板就不用说了吧?
不过很奇怪我用wingrit把一幅256×256的图片转成256色图块数据显示正常,而改成16色就显示得一团糟,也不知道什么原因……