Making「ストレトリ」(その3)

Home PC-6001mkII Program etc

 このページでは、完成までの過程を書いています。

Making「ストレトリ」 Top


2007/01/06:コンスト
 12/11時点では暫定的だったコンストラクションだが、あると無いとでは面作成の効率が全然違うので正式に実装する。

 カーソルキーでカーソル移動、数字キーまたはスペースキーでカーソル位置に数字を置くようにする。その他、キャラクタ単位で色をつけられるようにする。ゲーム中は数字キーで色がつけられるようにしたが、コンストラクションでは既に数字キーを使っているので、シフト+数字キー(1-8)の操作で様子を見る。

 キャラクタ毎に色設定ができて嬉しいかというと、少なくとも個人的には嬉しい。この辺りは、文章よりも画面の方が分かり易いかも知れない。ようするにこんな感じだ。

画面

 私の場合、面の作成のはじめの段階で暫定的に解答のパターンを作成し、そのあと数字を当てはめてながら微調整を行って行くのだが、この解答のパターンをあらかじめ色分けすることで別解チェックがやりやすくなる。

 なお、この面を入れるかどうかは未定(^_^;)。

2007/01/14:面の作成
 これまで面の作成については特に書いていなかったが、やる気のある時を見計らって細々と行っていた。ようやく、新規6面分を作成し、HSP版と合わせて15面となったので、試しに面データとして打ち込んでみる。

画面

 面データを入れると、一気に完成度が増したような雰囲気になる。しかし、まだ音やエンディングの処理も残っているし、手詰まり表示のON/OFFもやりたい。そしてなにより、まだマシン語のロード部分ができていない(今は毎回 P6VW内のbatコマンドで入力している)。

 BASICソースとなる.p6ファイルに細工をする事で、BASICの最後にマシン語を加えることができる。しかし、このままだとBASICソースの増減によってマシン語の開始位置が変わってしまうので、少し無駄だがマシン語部分を固定のアドレスにコピーして使用する。この辺りをするには、またやる気が必要のため(^^;)後日行おう。

2007/01/28:反転表示ON/OFF
 HSP版でもV1.1から追加した、手詰まり表示ON/OFFを実装する。HSP版では[Tab]キーを押している間だけ手詰まり表示をしていたが、P6版では[Tab]キーを押す毎にON/OFFを切り換えるようにする。

 マシン語の表示ルーチン部分で、表示ON/OFFのパラメータによる分岐の追加で済む事はわかっていたのだが、2ヶ月半ほど表示ルーチンを弄ってなかったので、一部の処理を忘れる始末...。やっぱり、マシン語のコメントは分かっている間に多めに入れておいた方が良いなぁ。

 マシン語部分の実装が無事済んだところで、BASIC部分にも反転表示ON/OFF用の変数を追加し処理を追加する。操作の画面表示のスペースが足りなくなったので、若干のレイアウト変更を行った。

画面

 試しに反転OFFのままプレイすると、ゲームの難易度が上がったような気がする。

 これでOK!と思いきや、コンストラクション画面でも反転表示OFFの状態になってしまう事に気付く。コンストラクションとテスト画面(は今まで出してなかったかな?)では、常に手詰まりの反転表示をONにしておきたいので、処理の変更を行った。

2007/02/04:タイトル強化
 ゲーム本編ではないが、タイトル画面の作りこみを行った。

 今回、タイトル表示に何か動きを加えたいと思っていて、これまでも色々と思考錯誤をしていた。まだ若干寂しい感は否めないが、まあまあの出来かと思う。思えば、タイトル画面に凝ったのも実に久しぶりだ。「QWERTY」以来かも?

画面

 次に、ゲーム中の効果音をぽちぽちと追加して行く。もちろん見た目は変わらないが、音が入る事で印象が変わって来た。ついでに、タイトル画面の表示時にもジングルを加えてみる。思いつきで作った割には、妙にしっくり来るものになった、と思う。

 リストが段々汚くなってきたので、ここらで一度きれいにしないとなぁ。それ以前に15面クリア後の処理か...。

2007/02/12:エンディング
 この連休こそは...と意気込んでエンディングを作成することにした。

 もともとストーリーもないゲームなのでエンディングにそれほど凝る必要もないのだが、やはりなにか「終わった」という印象を残せるようにしたい。あと、タイトル表示や面クリア時に二重音のジングルを用意したので、エンディングもなにかしら欲しいところだろう。

 途中何度も挫折しながら、ようやくそれらしい処理にしあがった。

 あとは、BASICとマシン語の結合とマシン語プログラムの転送処理だ。この辺りの処理は、実は「ちび文字PUT2」で行っているので、まあなんとかなるだろう。

 あともう少し。頑張って行こう。

2007/02/12:同居
 これまでずっとP6VWのBATコマンドで入力していたマシン語部分だが、BASIC部分との結合を試みる。

 DISKに保存していたBASIC部分を一度 .P6形式で保存し、このファイルとマシン語部分のバイナリをバイナリエディタ上で結合する。現在の所、思考錯誤の賜物ではあるが、以下のような結合を行っている。
  1. BASICファイルの最後にある00Hを3つだけ残し、後ろを削除する
  2. この後ろに、マシン語部分を追加する
  3. 最後に、00Hを10個追加する
 次に、マシン語を本来あるべきアドレスにコピーする処理を加える。BASICの後ろにつなげたマシン語部分は、BASIC部分の編集で開始アドレスが移動してしまう。ただ、マシン語部分の長さに変化が無ければ、プログラムの最後のアドレスからの相対位置でマシン語部分の開始を求めることができる。

 アドレスの計算には多少の微調整が入るが、ようやく完了した。

 まだ紹介ページも作っていないが、「0213」がストレトリっぽいので、できれば02/13中(23:59まで^^;)に出したいなぁ。

2007/02/13:「0213」でストレトリ
 02/12中に、紹介ページまで概ね作り終え、あとは02/13を待つだけだと思っていた。
 ところが02/13の晩に帰宅してから、Readmeを作っていなかったことに気付き、慌てて作成する。毎度の事ながら、気付くの遅すぎ。

 ようやく公開できる段階になった時、02/13もあと15分で終わろうとしていた。無事更新してホッとする。

 まあ そうは言っても、ある意味予定通りだったので良しとしよう。
 ちなみに、Readmeに書いた「もう一つの展開」は無かった事になってしまいました。某パズル紙に投稿しようとした(もちろん問題は新規に作成)けど、未公開のものでないとダメとの事でした...。


その2 Making「ストレトリ」