2024年08月24日
【ゲーム制作】シミュレーションゲーム 第37回
シミュレーションゲーム 第37回です。
今回は、所持金アップを組んでいきます。
所持金は10分毎に+1されることにします。(多いかな?後日、バランス調整時に調整します。)
まず、走査線割込み処理中の「経過時間カウント」処理から、分カウンタが+1される時に「所持金アップ」処理をコールするよう変更します。
所持金タイムカウンタを+1し、10になったら所持金を+1します。
99が上限です。
この時、所持金に変化があればパラメータ描換えフラグを立てておきます。
パラメータ部の描き換えは、前回に温度・湿度と併せて組み込んでいます。
次回、「スラー」の固有体内時間アップフラグを立てます。
2024年08月22日
【ゲーム制作】シミュレーションゲーム 第36回
シミュレーションゲーム 第36回です。
今回は、環境変動を組んでいきます。
環境変動とは、時間経過に伴い「温度」や「湿度」の飼育環境が変化する事です。
今作は舞台が8月と言う事なので、ベースとなる温度・湿度が結構高くなります。
今回、使用データは気象庁の統計データ、東京の8月のデータを持って来て、4時間毎に平均を取りました。
時間
温度(℃)
湿度(%)
0〜4時
26
92
4〜8時
27
89
8〜12時
31
69
12〜16時
32
68
16〜20時
30
73
20〜24時
29
75
こんな感じです。
思ったより湿度が高い…。
時間経過で、ベース温度・湿度を変化させ、それに伴いパラメータ部の「温度」、「湿度」を描き換えます。
まず、走査線割込み処理中の「経過時間カウント」処理から、時間カウンタが+1される時に「環境変動」処理をコールするように変更します。
環境変動処理を追加。
この時、温度・湿度に変化があればパラメータ描換えフラグを立てておきます。
メイン処理部で、パラメータ描換えフラグを確認し、立っていれば温度・湿度パラメータを描換えます。
ここではそれだけです。
「スラー」の快適環境から外れた時のストレス値上昇は後程。
次回、所持金アップを組んでいきます。
2024年08月21日
【ゲーム制作】シミュレーションゲーム 第35回
シミュレーションゲーム 第35回です。
今回は、「環境変動」を組む予定でしたが、ロジック組んでてどう考えてもバグがないのに正常に動作しない。
…ん? 以前にもあったなこういう事?
…と思っていたら、やっぱり「BINSET.BAS」で設定できるマシン語領域を超えてしまっていました。
「3Dダンジョンロールプレイングゲーム」以来、マシン語プログラム分割しなけらばならない程、大きなサイズのプログラム組んでいなかったので、久しぶりです。
容量は前回と同じで、大体&HCB00弱ですね。
と、言う訳で、今回はマシン語設定ファイルを分割し、「BINSET2.BAS」を作成します。
まず、Excelファイルを別シートで用意。
それを「.BAS」に変換して、BlueMSXに読み込ませます。
このマシン語設定プログラムを起動すると「SLG2.BIN」が作成されます。
BASIC部で、そのファイルを読み込むようにして、準備OKです。
次回、「環境変動」を組んでいきます。
2024年08月20日
【ゲーム制作】シミュレーションゲーム 第34回
シミュレーションゲーム 第34回です。
今回は、移動パターン?A『空腹時、エサが近くにあればエサ目指して移動。』その?Aを組んでいきます。
前回の回転検索で見付けたエサに「スラー」が向かって行くようにします。
エサのあるVRAMアドレスからY座標とX座標を算出します。
スラーの位置と計算し、移動方向と移動量を決定します。
あと、エサ食べてる間は、完全停止か、ちょろちょろ動くかどうしようかなと思いましたが、元気に食べているように見えるので、ちょろちょろ動くパターンにしました。
固まるとなんか気持ち悪いですね。
実際にはこんだけ集まるとすぐにエサがなくなるので、こんな状態にはなり得ません。
今回は「スラー」が「エサ」を見付けて「エサ」に向かうまで。
「エサ」を食べるは後程組みます。
次回、「環境変動」を組んでいきます。
2024年08月18日
【ゲーム制作】シミュレーションゲーム 第33回
シミュレーションゲーム 第33回です。
今回は、移動パターン?A『空腹時、エサが近くにあればエサ目指して移動。』を組んでいきます。
まずは、近くの「エサ」を探すルーチンを用意します。
検索方法をどうしようか悩む…。
一番簡単なのは、「スラー」を中心とした4角いエリアを左上から右下へ順に探すパターンですが、範囲内に複数個エサが見付かったり、見付かった中でどれが一番近いか調べたりと、後が面倒です。(…見付かった「エサ」と「スラー」との座標差が小さいものを一番近い「エサ」とすればいいだけなので、言うほど面倒でもないが…。)
そこで、「スラー」を中心に回転して探す方法にします。
渦巻き状に探していき、エサが見付かったら検索を止めて、そのエサに向かって進むパターンです。
ルーチン内で「エサ」を見付けると、Aレジスタに1を、HLレジスタに見つけたエサのVRAMアドレスを返します。
見付からなければAレジスタに0を返します。
因みにこのパターン、VRAM操作のBIOSを「読込み(&H004A)」→「書込み(&H004D)」にすると、渦巻き状のフェードアウトに使えます。
次回、移動パターン?A『空腹時、エサが近くにあればエサ目指して移動。』その?Aを組んでいきます。
2024年08月17日
【ゲーム制作】シミュレーションゲーム 第32回
シミュレーションゲーム 第32回です。
今回は、移動パターン?B『乱数移動。(4方向+停滞)』その?Aです。
1移動量は8ドットで、最低2移動です。
移動量は乱数で2〜9が設定されます。
移動の仕方は、縦方向に動いたら、次は横方向、次は縦方向と、縦と横を交互に繰り返します。
移動方向は0〜7の乱数で決まります。
0〜1は移動、2〜7はその場で待機です。
大半待機なのにやたら動き回っているように感じるのは気のせいでしょうか…?
前回組んだ「スラー」の足元チェックルーチンを使って、移動先に障害物がないかチェックしながら移動します。
ちゃんとチェックされているか確認のために一カ所柵で囲い、コマンド「移動」で数匹閉じ込めます。
しばらく放置して、外から入り込まないか、中から抜け出さないかチェックします。
かなりの時間放置しましたが、問題ありません。
次回は、移動パターン?A『空腹時、エサが近くにあればエサ目指して移動。』を組んでいきます。
2024年08月16日
【ゲーム制作】シミュレーションゲーム 第31回
2024年08月15日
【ゲーム制作】シミュレーションゲーム 第30回
2024年08月14日
【ゲーム制作】シミュレーションゲーム 第29回
シミュレーションゲーム 第29回です。
今回は、「スラー」の動きを具体的に考えていきます。
「スラー」の移動方法は、
・斜めには動かず、4方向移動とします。
・移動を始めると、その方向に1ドットずつ、8ドット分移動します。
・最短でも16ドット移動します。
・縦方向と横方向を交互に移動します。(=Uターンはしない。)
・お腹の部分、中央下部をエサなどの接触判定位置とします。
・地面以外には移動できません。
・飼育エリアの左右端には移動しない。(左端へ移動すると、SPRITEの仕様上消えてしまう対策)
と、します。
次に「スラー」の移動パターンは優先度を付けます。
?@コマンド「移動」で摘ままれた状態時、指カーソルに引っ付いて移動。
?A空腹時、エサが近くにあればエサ目指して移動。
?B乱数移動。(4方向+停滞)
この順で、移動パターンを決定します。
移動に関しては、こんなとこです。
夜間は「動きを遅く」する、若しくは「眠る」をしようかとも思ったのですが、総プレイ時間が短いので止めます。
次回から、「スラー」の動きを組んでいきます。