マリオのように、穴に落ちる
命のレッスンのレベルに、地面の穴を開けた。遊んで縁から歩き出してみてほしい: 四角は画面の底を抜けて落ち、落ちる途中もまだ舵が効き、歩き手たちは歩き続け、待ち時間のあとにようやく命が取られてレベルがまた始まる。プログラムは 1,527 バイトの命令 597 個で、作り方も確かめ方も同じだ。
ここで遊ぶ 机の上で変えてみる カートリッジ。NES のカートリッジを遊べるところならどこでも遊べる: pit.nes
画面の上では
穴はもうひとつの死で、別の場面だ
スーパーマリオブラザーズでマリオが穴に歩き込んでも、何も固まらず、跳ねもしない。パッドにまだ応えながら画面の底を抜けて落ち、世界はマリオ抜きで進む。クリボーは歩き続け、カメラが落ち着くのは数フレーム後だ。命が取られるのは、姿が見えなくなってからずいぶん経って、落下の音楽が鳴り終わってからで、それから命を失ったときと同じ画面が残りの命を見せ、レベルが初めから始まる。このカートリッジは自前の待ち時間と自前の言葉でその場面を演じる。歩き手にぶつかるのは、命のレッスンと同じく、もうひとつの死のままだ。
| このカートリッジ | スーパーマリオブラザーズ | |
|---|---|---|
| 縁から画面の底までのフレーム数 | 15 | 19 |
| 落ちる途中に横へ動いたピクセル数、右を押したまま | 11 | 16 |
| 途中で跳ね上がったピクセル数 | 0 | 0 |
| 姿が消えてから命が取られるまでのフレーム数 | 90 | 249 |
| そのあいだ歩き手は歩き続けた | はい | はい |
| 命を失ってから絵が消されるまでのフレーム数 | 0 | 2 |
| また遊べるようになるまでのフレーム数 | 121 | 155 |
| レベルは初めからやり直す | はい | はい |
書いたとおりに
このレッスンが扱うプログラムの部分。プログラム全体は、ただのテキストファイルだ: pit.s
falling:
LDA $15
CMP #$F0
BCC onscreen
LDA #$05
STA $50
LDA #$5A
STA $51
RTS
onscreen:
JSR feet
BEQ flying
LDA $21
AND #$F0
SEC
SBC #$10
STA $15
LDA #$00
STA $14
STA $16
STA $17
STA $03
flying:
RTS
rising:
LDA $15
STA $21
LDA $11
STA $20
JSR solid
BNE head
LDA $11
CLC
ADC #$0F
STA $20
JSR solid
BEQ flying
head:
LDA $21
AND #$F0
CLC
ADC #$10
STA $15
LDA #$00
STA $14
STA $16
STA $17
RTSこの前は: マリオのものと同じ、レベルの終わり