ゼルダのように、描かずに動くスプラッシュ画面
私たちの四角のためのスプラッシュ画面: 色の変わる SQUARE の文字と、その横を落ちる水滴の列。そして黒へ暗転し、また初めから。遊んで、ただ眺めてみてほしい。プログラムは 522 バイトの命令 227 個で、作り方も確かめ方も同じだ。
ここで遊ぶ カートリッジ。NES のカートリッジを遊べるところならどこでも遊べる: splash.nes
画面の上では
動いている間、何も描かない
ゼルダの伝説のタイトル画面はにぎやかで、滝が流れ色が移ろう。それでも絵ができあがってからは、ゲームはタイルを一つも書かない。滝はスプライトの列で、毎フレーム数ピクセルずつ下がり、短い輪を終えると上へ戻るので、水が永遠に落ち続けるように見える。色が変わるのは、数フレームごとにパレットを一つ書き直しているからだ。十分に見せたら黒へ暗転するが、これもパレットを書き直すだけで、そのたびに少しずつ暗くする。このカートリッジも、自前の言葉と水滴と色で同じようにする。
| このカートリッジ | ゼルダの伝説 | |
|---|---|---|
| 暗転までに見せるフレーム数 | 396 | 487 |
| その間に書いたタイルの数 | 0 | 0 |
| 色が変わった回数と、その間のフレーム数 | 50 回、8 フレームおき | 68 回、6 フレームおき |
| 落ちるスプライトが毎フレーム動くピクセル数 | 3 | 2 |
| 上へ戻るまでのフレーム数 | 8 | 8 |
| 暗転の段数と、かかるフレーム数 | 5 段、16 フレームで | 10 段、40 フレームで |
書いたとおりに
このレッスンが扱うプログラムの部分。プログラム全体は、ただのテキストファイルだ: splash.s
palette:
LDA $46
BEQ written
LDA #$3F
STA $2006
LDX $46
LDA #$00
STA $46
CPX #$01
BNE whole
;; The word's four colours.
LDA #$04
STA $2006
LDX #$04
four:
LDA $0300,X
STA $2007
INX
CPX #$08
BNE four
JMP back
;; All 32, each darker by $10 for every step of the fade; a colour that
;; would go below the darkest row is black.
whole:
LDA #$00
STA $2006
LDX #$00
dark:
LDA $0300,X
LDY $43
BEQ put
darker:
SEC
SBC #$10
BCC black
DEY
BNE darker
JMP put
black:
LDA #$0F
put:
STA $2007
INX
CPX #$20
BNE dark
back:
LDA #$00
STA $2005
STA $2005
LDA #$80
STA $2000