2024年02月22日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第19回
無人島脱出アドベンチャーゲーム 第19回です。
今回は「オープニング」処理を組んでいきます。
前作同様、オープニングはメインプログラムの中でやります。
今作では、「さいしょから/つづきから」選択を、スクリプトでできるよう挑戦します。
上手くいきました。
スクリプトなので簡単です。
「さいしょから」選択で、オープニングが始まります。
こちらもスクリプトで組んでいくので、簡単カンタン。
あとで、オープニング用のグラフィックも用意しないと…。
では、次回は「つづきから」選択時のコンティニュー処理を組んでいきます。
2024年02月21日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第18回
無人島脱出アドベンチャーゲーム 第18回です。
今回も「スクリプト」の続きを組んでいきます。
やっとスクリプトで「みる」、「しらべる」、「いどう」、「もちもの」、「セーブ」コマンドでの通常動作の組み込みが完成しました。
これで、場面間は全て移動できるようになりました。
イベント発生しないので、ゴールまで移動チェック済みです。
ここからは、フラグ値による分岐処理を組んでいきます。
ある場所に行くとフラグが立ち、その状態で別のある場所に行くと先のフラグ値によりイベントが発生し、先へ進めるようにします。
まぁ、前作で結構組んだので、この辺りは慣れっこです。
結構サクッと組めました。
確認事項は2点。
@全てのフラグ立てていない状態で、ちゃんと先へ進めなくなっているか?
Aフラグを立てれば、その先に進めるか?
全てのイベントをチェックし、問題なくゴールまで進めるようになりました。
次回、オープニング処理を組んでいきます。
2024年02月20日
第一種情報処理技術者資格
さぁ、いよいよ「第一種情報処理技術者資格」。
年1回、春にしか受けられないので、進学早々の受験となります。
1部「情報処理の知識」は、まぁ予想通り。(2023年9月25日記事参照「第二種情報処理技術者資格」)
相変わらず2部「プログラム知識」は完璧だったと思います。
ん−…、しかし今回は残念ながら不合格でした…。
やっぱり、1部「一般教養」が…。
あそこである程度の点取らないといけないのは至難の業だ…。
因みに学校でやった過去問でも、「第二種情報初技術者資格」の時と同様、2部は毎回満点。
1部「情報処理の知識」はそこそこ、1部「一般教養」の問題次第での合格圏内でした。
「一般教養」は高校レベルの数学や英語など...。
どれだけバカなんだ自分…。
しかもこれで来年の春まで試験がない…。
きついなぁ…。
2024年02月19日
進級
専門学校の友人全員無事進級し、クラス替えがありました。
元々、資格試験の前には各自のレベルに合わせた授業をするためにクラス替えをしていましたが、それは期間限定クラスで、試験が終わると解散し元のクラス(私は6組)に戻っていました。
2年生では、完全に成績順のクラス分けになりました。
全部で6クラス。
私は1組。
当然、全員第二種情報処理技術者資格持ち。
要するに第一種情報処理技術者試験に向けてのクラス分けです。
2組は有資格者が半分くらいだったような…。
いつもの居候組メンバー5人は、確か2組2人、3組1人、4組1人、5組1人でした…。
見事にバラけてますね。
2組と3組の3人は、第二種情報処理技術者資格合格者でした。
なぜ1人資格持ってるのに3組なのか?
授業中ずーっと寝ていたらしく、授業態度によるものらしい…。
居候組メンバーが同じクラスにいない中、寂しい思いをせずに済んだのは、1年の時のクラスの友人の何人かが一緒の1組だったから。
しかもその中にMSXのプログラミング友達もいました。(2023年10月21日記事参照「プログラミング仲間」)
彼の存在が大きかった。
ただまぁ、1組だからみんな静かに授業受けてるかと言うと全くそんなことはなく、授業そっちのけでゲーム雑談しまくって講師に「うるさい!!」と何度怒られたことか…。
私とそのMSXの友人が「特にやかましい」と、名指しで怒られたことはいい思い出です…。
2024年02月18日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第17回
無人島脱出アドベンチャーゲーム 第17回です。
今回も「スクリプト」の続きを組んでいきます。
…と、思っていたらメッセージデータエリア(&HA000~&HAFFF)のメモリが足りなくなりそうです!
まだ30個くらい組んだところで、&HAE00超え…。
まだ、フラグ分岐でのイベント発生を全く組み込んでいないので、全然足りません。
メッセージデータってメモリ食うんですね…。
悩みましたが、仕方ない。
メッセージデータを4分割します。
1ファイル当たり6〜9イベント位だと余裕があるかな?
それに伴い、ディスクからデータを読み込む必要があるのでスクリプト命令を1つ追加します。
命令 | 意味 | 記述 | 動作 |
FL | FileLoad & eventstart | FL,f1,e1 | ファイルG1をディスクから読み込み、イベントF1を実行する。 |
「ES」(イベントスタート)命令の亜種です。
自イベントから他イベント実行前にファイルを読み込みます。
当然、ディスクを使うので一旦BASICに戻ります。
スクリプト命令を受けてBASICへ戻る。
BASIC部でファイルを読み込んでイベントリスタート。
ファイルを読み込んだ際、ファイル名が誤っていないかファイルu\示。
データとデータ間の移動の時は、「FL」を利用します。(場面12と11間の移動など。)
もっと1イベント当たりのメッセージデータが多い時は、画像データと同じように1ベント1メッセージデータファイルにすれば問題ないです。
スクリプト組みと、メッセージデータ分割に、ちょっと時間かかるかも…。
2024年02月17日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第16回
無人島脱出アドベンチャーゲーム 第16回です。
今回は「スクリプト」を組んでいきます。
まずは、場面(画像)表示。
とりあえず画像は後で用意するので、今は表示画像に誤りがないか確認できるよう「場面avをテキスト表示しておきます。
次にコマンドメニュー選択。
今作にはシステムメニューが存在しないので、前作でシステムメニュー項目だった「もちもの」、「セーブ」がコマンドメニューに入ります。(メモリ節約。)
ただ、「セーブ」は全場面で入れる必要はないので、数場面に1回メニューに現れるようにします。
「いどう」コマンドで移動可能先表示。
移動すると、場面表示に戻ります。
次に「セーブ」コマンドで保存先表示。
ここまで問題ありません。
次回、「スクリプト」の続きを組んでいきます。
2024年02月16日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第15回
無人島脱出アドベンチャーゲーム 第15回です。
今回も「スクリプト命令」を組み込んでいきます。
では、追加予定スクリプト命令の最後「IL」です。
所持アイテム一覧になります。
前作では、「システムメッセージ表示ルーチン」で表示していたものです。
今作は「システムメッセージ表示ルーチン」は破棄していますので、通常の「メッセージ表示ルーチン」で表示します。
良い感じですね。
メッセージ表示ウェイトも効いているので、ゆっくり表示されます。
スクリプト命令を受け取ってサブルーチンコール。
所持アイテム一覧表示サブ。
今作のアイテム設定プログラムです。
とりあえずアイテムは5つ。
スクリプト命令が揃いましたので、次回はスクリプトを組んでいきます。
2024年02月15日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第14回
無人島脱出アドベンチャーゲーム 第14回です。
今回も「スクリプト命令」を組み込んでいきます。
前作ロールプレイングゲームには、マップの「探索」部があったので、そこでシステムメニューが使えました。
今作では、イベントからイベントを呼んで、ゲーム中ずーっとイベント処理を継続していきますので、システムメニューを介在させることが出来ません。
と、言う訳で前作システムメニューにあった、「どうぐ」と「セーブ」は、今作ではコマンドメニューに入れる事になります。
そのため、スクリプト命令が必要になります。
まずは「SV」。
ディスクへのデータ保存命令の為、BASIC部で処理する必要があります。
前作の「BE」同様、イベント処理を抜けてBASICへ戻り、再度マシン語へ戻り、スクリプトの続きから実行する命令です。
ただ、「BE」の様に勝敗等の条件で、マシン語部へ戻った時の分岐がないので単純です。
マシン語部でイベント抜け。
BASIC部で処理後マシン語部呼び出し。
マシン語復帰用呼び出し先。
次は処理の流れが「SV」と全く同じなので「SC」。
画像データをディスクから読み込む命令の為、BASIC部で処理する必要があります。
BASICへ復帰する際の、フラグ値が異なるだけです。
マシン語部でイベント抜け。
BASIC部で処理後マシン語部呼び出し。
マシン語部への戻り先は「SV」と同じです。
次回は、追加予定「スクリプト命令」の最後「IL」を組んでいきます。
2024年02月14日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第13回
無人島脱出アドベンチャーゲーム 第13回です。
今回は足りない機能分の「スクリプト命令」を追加で組んでいきます。
命令 | 意味 | 記述 | 動作 |
SC | SCene print | SC,s1 | 画像T1を表示する。 |
IL | Item List | IL | 所持品一覧を標準メッセージウィンドウに表示する。 |
SD | SounD | SD,s | 効果音Tの効果音を鳴らす。 |
SV | SaVe | SV | 選択値(&HE015)のセーブファイル名で保存する。戻り値[3]でbasicへ戻る。 |
詳細設計時に書いた通り、とりあえず上記4つを組み込みます。
とりあえず、「SD」を組み込みます。
ほぼ「BM」と同じで、変数「演奏予約効果音avを設定するだけです。
走査線割り込みが掛かった時に、変数値をチェックし効果音の演奏が始まります。
演奏開始されると「演奏予約効果音avには&HFFがセットされます。
因みに「演奏予約効果音avに「0」を代入すると演奏停止になります。
次回も残りの「スクリプト命令」を組んでいきます。
2024年02月13日
【ゲーム制作】無人島脱出アドベンチャーゲーム 第12回
無人島脱出アドベンチャーゲーム 第12回です。
なんとか、無事一通りのスクリプトが動くようになりました。
長かった…。
本業を終え、家に帰ってからの短い空き時間、すべてバグ取り…。
本業のストレス緩和に始めたブログなのに、こちらでもストレスを抱えるというジレンマ…。
何度挫折しかかった事か…。
サブルーチンのコール先アドレスは、Excelの置換機能で一括置き換えできたので、大した労力ではありませんでした。
問題は、アセンブラ言語で言うところの「JR」命令(ジャンプ・リラティブ)の飛び先指定…。
何度見直して直しても、フリーズが一向に収まらない…。
後半、正直吐きそうでした。
もう、前作のロジックで、今作で使わない部分に新しいロジック組んでいく形でいいじゃん!って、思いかけていました…。(当然、バグフィックスはそのままの、汚いロジック。)
…本当にこのブログで公開すると言う目的(?)がなければ、間違いなく挫折してました。
さて、以前書いた通り、メッセージルーチンと、スクリプト処理ルーチンは完全に切り分けました。
そうしないと、前作のようにメッセージルーチンをシステムメッセージの表示に使えない状態になるので、そこだけは何とか頑張りました。
次回は、スクリプトが動くようになったので、詳細設計時に「足りない機能」として挙げた追加予定「スクリプト命令」を組んでいきます。