我计划在我的新 C64 项目中使用多色字符模式下的软件精灵。我的想法是使用叠加“子弹”精灵数据来平铺数据。
我想我可以在地址 'TILESET' 上拥有tileset 数据,在地址'SPRITE' 上拥有精灵数据。我可以将这两者结合起来准备一个具有动态计算背景的子弹字符并存储在地址“SUPERIMPOSED”中
我写了以下代码和循环计数来检查它是否可行。我认为不是。循环消耗了 219 个周期。近四个光栅线。而且我没有包括在此循环之前所需的其他必要计算。就像计算目标地址一样。
当我想在屏幕上显示 16 个项目符号时,需要 64 个栅格或 8 个字符行。于是我开始怀疑。这是正确的方法吗?或者有没有其他更优化的方式来做同样的工作?
cycles
---------
ldy #$07 4 x1 = 4
- LDA TILESET,x 3 x8 = 24
AND SPRITE,x 4 x8 = 32
STA SUPERIMPOSED,x 5 x8 = 40
dey 2 x8 = 16
cpy 4 x8 = 32
bne - 3 x8-1 = 71
----------
219 Cycle
我正在考虑在背景中有重复模式。这样我就可以使用相同的子弹图块而无需重新计算。