FC中的3个表

Pattern Table存储tile的地方,不管是角色用到的sprite还是Name Table 用到的tile都存储在这里,前者放在PPU内存空间的0x0000-0x0x0fff,后者存放在0x1000-0x1fff中,因为每个tile(sprite)都是由16个字节表示(实际用两组8个字节来表示同一副图片),因此每个patter Table中的都只含有256tile(sprite)。之所以要用两组8字节来表示一副图片,是因为每个像素颜色的低两位就是由每组中同一顺位的字节的同一位的和来表示的。

Name Table构成游戏场景的tile索引表。如果场景是滚轴效果的话,游戏代码会不断刷新该表,由于一个场景包含了32X30tile,因此一个Name Table960个字节,同时每个Name Table还伴有一个Attribute Table,在Attribute Table中包含的是Name Table中所含tile颜色的高两位。

Attribute Table为每个Name Table提供附加信息,它将一个背景分成8X8个区域,每个区域有16tile,然后又把这16tile分成2X2组,0-30组,4-71组,8-112组,12-153组,0组的tile颜色的高两位就用Attribute Table中每一项(就是一个字节)的0-1位,1组用2-3位,2组用4-5位,3组用6-7位,即背景中每个区域的颜色信息就可以用Attribute Table中的一项来表示,因此Attribute Table的大小就是64个字节。而显示时,背景中的tile的颜色就可以由存储在Pattern Table中的低两位和Attribute中的高两位来表示了。

0

1

2

3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值