我打算在我的新C64項目中使用多色字符模式下的軟件精靈。我的想法是使用疊加'子彈'精靈數據來平鋪數據。更好的方式來動態更新平鋪數據上的Commodore 64
我想我可以在地址'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
我正在考慮在背景中有重複模式。這樣我就可以使用相同的子彈圖塊而無需重新計算。
展開循環以擺脫代碼增加代價的開銷。你似乎還在使用'x'進行索引,但是'y'用於循環? – Jester
如果您的精靈的大小超過一個像素,並且您希望能夠定位任何像素,則需要更多代碼,包括疊加2或4個字符(拼貼)的功能。如果精靈只是一個像素,您可以簡化代碼。 –
@RossRidge我還沒有找到精靈。所以我不確定這個尺寸,但是它的大小約爲4x4。 – wizofwor