ちょっと技術っぽい話。
これをやるのに1週以上資料探し回ってた。
ゲームボーイって
- スプライト(主にゲームキャラクターに使う)
- ウィンドウ(メニューとかサブ画面的な使い方)
- BG(大体マップに使う)
…って言う3要素で構成されてるんだけど。
これ個別に描画ON/OFFできるんです。
で。
ウィンドウとBGは常に一組セットで、間にスプライトを入れる事ができない仕組みになってるんです。
スプライトは必ずウィンドウの上かBGの下になるんです(たしかそんな感じ)。
なので上の動画でやってる事、BGとウィンドウの間にスプライトが入っているように見せると言う事をするには工夫がいるのでした。
そうそう。
なんかゲームボーイとかその手の画面って、左上から「ドット描くマン(走査線的なやつ)」が右へ1ドットずつブルァァァって描いて右端に着いたら次の行の左端に移動してまた右へブルァァァと描く行程を繰り返し、それを一番下までやるって言うのを数ミリ秒でやっちゃう仕組みらしいです(60FPSなら1毎画面描ききるのに0.01666...秒で済んじゃう的な)。
上の動画だとその「ドット描くマン」がウィンドウの上端とY位置が一緒の時に「スプライトを描かない」という設定に切り替えてスプライト(上の動画だとプレイヤーキャラ)の描画処理をすっ飛ばし、「ドット描くマン」が画面の一番下に来たところで「スプライトを描く」という設定に戻す事で次また描画する時は普通にキャラクターが描かれ、またウィンドウの上端と位置が合ったところで「スプライトを描かない」設定にし、キャラを描かない…。
こうするとまるでウィンドウとBGの間にキャラが居るような描画になるって感じ。
って言うのを実現したかったための資料がなかなか見つからなくて1週以上かかったって話なのでした。