野田ゲー「モンスト」の実装テクニック
野田クリスタルさんがR-1ぐらんぷり決勝で披露したゲーム「モンスト」の実装を見てみたところ、おもしろい箇所があったので紹介します。
「モンスト」とは
「モンスト」は野田さんがHSPで書かれたWindows用のゲームです。媒体はCD-ROMで、私は3年位前に渋谷の吉本の劇場で買いました。CD-ROMにはゲームが5本入っていて、「モンスト」はその1本です。
野田さんはこのCD-ROMについて「コピーガードがないのでコピーし放題」とよく言ってますが、なぜかHSPのソースコードもそのまま入っているというサービスっぷりです。これは、HSPは「hsptmp」というソースコードのバックアップファイル?を自動で作成するようなのですが、それを手違いでCD-ROMに含めてしまったのだと思います。
今回はその「hsptmp」を読んでみた、という話です。紹介するのは上記画像のストッキングに穴を開ける処理です。
あなたならどう実装するでしょうか?
野田さんの実装
該当部分を抜粋します。
color 252,226,196 if hit_f(0) = 1 : circle 0+x+88,0+y+170,box+x+95,box+y+175
何をしてるのかというと、ハサミが衝突したらキャラクターの肌の色と同じ色の円をcircle命令で描いています。
ストッキングに穴を開けるのではなく、ストッキングの上に丸を描いて穴が開いたように見せている、という実装です。つまり、ヘタウマなように見えるキャラクターは決して適当に描かれたものではなく、肌は単色である必要がある、という仕様が存在しています。
所感
ストッキング画像を部分的に透過する、といった作りを私は予想していたので、この簡単な実装にはかなり意表を突かれました。これはなかなか思いつかないんじゃないかと思います。