我在这里有一个很大的问题,我发现用几本参考书、互联网和你的参考书真的很难回答。
在大胆的位,我有真正的麻烦!
这是我用来运行显示位图部分的代码,在mo中它只是进入一个无限循环.
*=$1000
lda $4710
sta $d020
sta $d021
ldx #$00
loaddccimage
lda $3f40,x
sta $0400,x
lda $4040,x
sta $0500,x
lda $4140,x
sta $0600,x
lda $4240,x
sta $0700,x
lda $4328,x
sta $d800,x
lda $4428,x
sta $d900,x
lda $4528,x
sta $da00,x
lda $4628,x
sta $db00,x
inx
bne loaddccimage
lda #$3b
sta $d011
lda #$18
sta $d016
lda #$18
sta $d018
jsr *
*=$1FFE
incbin "ASTRO1.prg"到目前为止,我尝试重复代码,认为它可以重写所有东西,但是*=$1FFE似乎没有按时间顺序工作,对于每个文件,我得到一个内存过写错误,它总是默认显示我用incbin函数调用的最后一个位图。是否有办法在每个位图帧之间重置所有内容(但只需转到黑色)?还是我只是不正确地加载这些图像?
移动然后进入字符模式也将是棘手的,因为我无法找到一种方法,即使用一个位图。也许这个完整的代码结构是错误的,idk.
或者这仅仅是c64不能做的事情呢?我不愿意去这里,因为我肯定我见过位图循环在游戏介绍-只是真的抓我的头,想知道如何可以做到。
再次感谢各位,并对这里缺乏理解感到抱歉,我是新的编程一般,但认为我在正确的轨道上。我希望很多人能从你的回答中学到一些东西,因为我认为这是真的没有任何信息。
你可爱的准将朋友
詹姆斯(Smokeyparkin)
发布于 2021-07-12 09:19:00
你有三个选择。
。
回到字符模式,只需将$d011、$d016和$d018设置为它们的初始值就足够了(如果您更改它,也可以使用$dd00 )。
lda #$1b
sta $d011
lda #$c8
sta $d016
lda #$14
sta $d018对于造成延迟的问题,请检查我的回答:How to create a delay in asm for the MOS 6502
要输入键盘,请检查我的答案:Compare keystrokes - Assembly CCS64
https://stackoverflow.com/questions/68337563
复制相似问题