了。没想到任天堂是用这种方式实现画面变形的!”
小林彻紧盯著屏幕上復刻出的內容。
【把一幅背景画面32列x30行分为240个点行(或称为线)。
位移开始时若选定那一个页而对正显示窗口,可由程序no.6-2控制。
no.6-2选分裂位移页面处理程序
lda #$20
sta $2006
ldy #$00
sty $2006
当选0页时,a寄存器的值可取h20~h23;当选1页时,a寄存器的值可取h24~h27。
但y寄存器的值必须为0,若y+0,整幅画面要向左上角位移与y值对应的点数。
通过对$2000单元的背景显示页面选择开关置值,选择欲显示內容的背景页面。
对$2005单元置入当前欲显示內容位於显示窗口的x、y坐际。
通过控制延时时间,控制显示画面的纵向高度。
通过对以上五个步骤的灵活组合,可以实现显示画面任意块分裂位移。】
(以上內容出自《任天堂游戏编程技术探秘》中捲轴滚动一节。)
“厉害。”
小林彻长出了一口气。
任天堂果然是专业的,说到底,他也只是个爱好者,不是正牌程式设计师,有些事情还处於知其然而不知其所以然的阶段。但小林彻现在也在日常攻读健太郎的心得手册,看到这一串字符以后,脑袋里也渐渐勾勒出了对应的画面。
“所以这就是任天堂实现画面变化的技巧!”
小林彻忽然一拍脑门:“我知道咱们错在哪了。”
中裕司一愣:“我还没看懂呢!”
“不,不用看懂,只是任天堂的编程给我们指引了正確的道路,你听好,我们实现捲轴的方式不是错误的,错误的问题在於我们没有將画面合理拆分,而是想著用同一张大图进行位移,但这对於游戏机的机能而言是不可能的,所以我们应该换一种方式。”
小林彻扯过白板,飞快写了几笔,在形如坐標系一般的画面上写出一行文字。
0f丨0e
1f丨1e
“將背景分层,用这样的方式,移动一部分作为前景的素材,从而实现画面滚动的效果。这样,就能够解决我们的问题了!”
其实更详细的代码小林彻是看不到的,