【 Making「FP3(仮)」その3 】 |
---|
Home | PC-6001mkII | Program | etc |
このページでは、基本機能の実装過程を書いています。 |
2009/06/27:戻り値その2 | ||||||||||||||
PLAY文で鳴らす部分を、BIOSルーチンを使ってマシン語化しようとしたが、あえなく玉砕した。 PLAY文の文字列開始アドレスをHLレジスタに入れて1EB3Hコール、と書き写したメモにはあったのだが、その通りに実行すると、なぜか「?BS Error」になる。仕方ない、とりあえず元に戻すか...。 さて続きだ。6/23で戻り値を決めたが、戻り値をBASICで処理するのに都合の良いように値を変更する。
戻り値を元に音を鳴らしてみる。やっぱり、簡単な音でもあると無いとでは大違いだ。 まだ肉付け部分は色々あるが、それよりも面を取り揃えないと。昔作った面と、新規作成の面を合わせて10面なので、あと6面は作らなきゃ。 |
2009/07/04:アンドゥ仕様 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
パズルゲームで、もう一つ必要な要素があった。アンドゥだ。という事で、アンドゥの仕様を決める。 決めるべき事は「どの範囲をアンドゥ用の情報として持つか」と「どこまでアンドゥさせるか」だ。アンドゥ用の情報としては、大きく以下の3通りがある。
方法2は、一手動かした時の画面変化が少ない場合に情報量を抑えられる。今回のプログラムでは効果的な方法だ。 方法3は、仕組みとしてわかりやすい。ただし、毎回画面データを取る事もあって、メモリ消費量は大きい。 結局、採用しようと思うのは、方法3だ。理由は一番処理が楽そうだから(^^;)。 次に、どこまでアンドゥさせるかを考える。アンドゥ用のデータを収めたいメモリ空間は、E800H 〜 EFFFH。一画面分の情報は64バイトなので、1024÷64=16回分記録できる事になる。16手だとちょっと心許ないので、移動ごとではなく岩やフルーツを押したタイミングで記録を行う事にする。 処理の概要としては、現在のポインタを「▼」、アンドゥ限界ポインタを「■」とした時に以下のルールにそって処理を行う。
...とりあえず処理の矛盾はないよな。という事で、この処理を実装することにする。 |
2009/07/06:16面 |
7/4に考えたアンドゥ機能を実装する。合わせて、ようやく最低限の16面分が出来上がったので、データを入力する。 ちなみに、面はどこで作ったかというと、携帯のメモ機能だ。これだと、電車の中でも作れるので便利だと思う。若干、面の検証が難しいのが難点だが...。 実際に面をプレイしながら、面データの入力ミスや面の順序の調整を行った。昔作った面も5面ほど入っているが、解法を忘れている事もあって少々解くのに時間がかかった。 あとは、タイトルや面選択、面クリアといったその他処理だ。これでゴールが見えてきたかな? |
2009/07/14:Fruit ... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
終盤の面くらいはもう少し難しくしたいなあ、と思い立ち、面の修正を行う。 何度も同じ面を解いていると難易度がわからなくなってくるが、13面以降は一日空けると一部解き方を忘れる程度になったような気がする(トシのせいでない事を祈る)のでこの辺りにしておく。 もう一つ、正式にタイトルを決めないといけない。出来れば、以下の条件に合うようにしたい。
...もうなにがなんだかわからなくなってきた。英語と略語の語感で、「フルーツミラージュ」にしようかな。でもまだ迷っている。
|
2009/08/01:仕上げ |
実際にプレイしながら、面の難易度や操作性の調整を行う。アンドゥは、以前に16回分記録する事にしていたが、少し足りないように感じたので64回分まで拡張する。 さて、あと残すはエンディングだ。とは思うものの、なかなかアイディアが出てこず、あっという間に2週間がたってしまった。仕方ない。埒が明かないので、作りながら考えよう。...ごにょごにょ...っと、こんなものかな? あとは、公開のためのドキュメントを整備する。 作り始めから、実に3ヶ月が経ってしまったが、これでようやく完成だ。 |
← その2 | Making「FP3(仮)」 | − |