アフィリエイト広告を利用しています
 

2023年12月04日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第58回



3Dダンジョンロールプレイングゲーム 第58回目です。
今回は、システムメニュー最後の「まほう」処理を作成します。

「どうぐ」の「つかう」処理と同じで、戦闘時にも使いますのでサブルーチン化します。

「どうぐ」では、各用途(回復、状態異常回復など)のアイテムが1種類ずつなので直接アイテムnw定でロジック振り分けていましたが、「まほう」は同用途の魔法が複数存在する為、用途区分を持たせてロジックを振り分けるようにします。
12_4_7.png
魔法データの先頭1桁が、用途区分です。
0が回復、1が攻撃、2が状態異常回復、9が移動です。
魔法名の後がMP消費量、最低効果、効果加算値(乱数)となっています。
(「回復1」なら、回復値は10±0〜7です。)

11_26_1.png
まず、システムメニューから、「まほう」を選択。

11_26_2.png
何も習得していなければメッセージ表示。

12_2_3.png
習得魔法リストが開くので、唱える魔法を選択。

12_4_1.png
魔法を唱えます。

12_4_2.png
「回復」魔法です。

12_4_3.png
「毒消し」の魔法。

12_4_4.png
「戻る」の魔法。
フェードアウトし、スタート地点に戻ります。(店屋と宿屋に戻りたい時に使用。)
戦闘時は何も起こりません。
宿屋利用時のフェードと同じなので、余裕があれば別のフェード方法を組みたいと思います。

12_4_5.png
「攻撃」魔法です。
戦闘中以外は何も起こりません。
戦闘中は効果値を変数(&HD645、&HD646)に格納し、戦闘ロジック側でその値を攻撃値として利用します。

12_4_6.png
これで「まほう」処理完了です。

次回は、いよいよ戦闘を組んでいきます。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年12月03日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第57回



4_19_1.png

3Dダンジョンロールプレイングゲーム第57回目です。
ここらで再度ゲームの進捗状況の確認をします。

【ゲーム製作進捗】





























































































































工程作業進捗
1ゲーム設計(規模、詳細、メモリマップ)完了
2シナリオ作成完了
3オープニグ作成完了
4タイトル作成完了
5マップ設計(2D)完了
6マップグラフィック完了
7文字FONT完了
8タイトルFONT完了
93D表示完了
10マップ内移動完了
11システムメニュー(ステータス、セーブ完了
12イベント発生処理完了
13イベント設置完了
14イベント進行完了
15イベント移動完了
16メッセージ表示ロジック作成完了
17独自スクリプト作成(全21、制御コード3種完了
18BGM作曲(ダンジョン、戦闘、エンディング)33%(ダンジョンのみ)
19BGM演奏完了
20本番データ登録完了
21敵グラフィック(全8種)
22敵遭遇
23敵戦闘
24レベルアップ
25道具屋(武器屋)完了
26宿屋完了
27エンディング
28道具完了
28魔法
29CONTINUE処理

結構進みました!
でも、「戦闘」が残ってるので、全体で50%位と言ったところでしょうか…。
経過した時間と進捗が比例していない…。
まぁ、トラブル続きでしたからね…。
難関部分である、「敵との戦闘」が手付かずですので、まだまだ先は長いです。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年12月02日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第56回



3Dダンジョンロールプレイングゲーム 第56回目です。

今回は、「まほう」処理作成前に、全てのデータの正式データの登録を行い、データ格納アドレスと容量を確定します。






















アドレスデータ名備考
9B00〜9CB4アイテムデータエリア23種類×19バイト=437バイト
9D00〜9D4D魔法データエリア6種類×13バイト=78バイト
9E00〜9EAF敵データエリア8種類×22バイト=176バイト
9F00〜9FE7レベルアップデータエリア29レベル×8バイト=232バイト

上記4種のデータを、アイテムデータ登録ツールの項目を増減させて改造し、各々の登録ツールを作成し登録していきます。

全て予定通りのアドレスに格納されました。

登録状況の確認をします。
メッセージデータの「IS(店屋)」でアイテム登録状況確認。
12_2_1.png
12_2_2.png
システムメニューの「まほう」で魔法登録状況確認。
12_2_3.png
システムメニューの「ステータス」の「つぎ」でレベル登録状況確認。
11_24_1.png
12_2_4.png
12_2_5.png

問題なく登録出来ています。
「敵」データの確認は、確認できるロジックを組んでからやります。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年12月01日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第55.5回



3Dダンジョンロールプレイングゲーム 第55.5回目です。
.5ですが、バグではありません。

前回、システムメニューの「どうぐ」の「つかう」処理を作成しました。

この「つかう」ロジックは、ほぼそのままの形で戦闘時にも使えます。
最初は、「戦闘時のロジックに全く同じものを組み込んでやればいいか。」と、思っていたのですが、ブログで公開している以上、それではあまりに「考えなしと思われかねないな。」と、思い直し「所持品表示〜所持品選択」部分と、「つかう」部分をサブルーチン化します。
12_1_1.png
「どうぐ」メニューが選択されたらサブルーチンコール。

12_1_2.png
所持品リスト表示と、選択までをサブルーチン化。

12_1_3.png
「つかう」処理をサブルーチン化。

戦闘時の「どうぐ」メニューからこのサブルーチンを呼びます。
これでそれなりのメモリ節約が出来ました。

なぜ、「つかう」だけなのか?
私の持論は、「戦闘時に持ち物整理(すてる)や、装備し直し(そうび)なんかしている暇はない。」です。
よって、戦闘メニュー中の「どうぐ」は使うしかできなくします。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年11月30日

プログラムのロジック

4_19_1.png
ゲームで「こういうことがしたい!」と思いロジックを考える時、閃いたロジックにより、プログラミングの難度や、処理速度、プログラムの長さが全然変わります。
結果は全く同じなのに、それを実現するプログラムのロジックは全く違う訳です。

そこがプログラミングの面白いところです。

ただ、全く閃かない時もあります。
そんな時は、無駄に長く、効率の悪いプログラムを組んでしまいます。
後で、「あれ?なんでこんなロジック組んでるの!?」と、猛省する事も…。

例えば、今制作中の3Dロールプレイングゲームのシステムメッセージの表示で、今回、アイテム名+メッセージの表示を組みました。
アイテム名が10桁で、後ろにスペースが付いているのでそれを除いて表示するロジックです。

私は今回、アイテム名をワークにセットし、10桁目から前に(9桁目)スペースかどうかチェックをかけて行き、スペースでなくなった位置から、残りのメッセージをワークにセットし、VRAMに一括転送して表示するロジックとしました。
特に問題はありませんが、桁が変動する部分を前に持ってこなければならないため、回復薬を使った時にこのロジックだと「25たいりょくが、かいふくした。」としか表示できませんし、合成用のメッセージルーチンを専用に組まなければなりません。

他の方法としては、メッセージデータとして「たいりょくが、〇〇〇かいふくした。」と用意しておき、〇部分にゼロサプレス若しくは左詰めで3桁の数値をセットし、表示する際VRAMに一括転送するのではなく、1文字ずつスペースかどうかチェックしながら転送すれば良いです。
これだと他のメッセージ表示ルーチンと共通で使えます。
ただ、この場合メッセージ中にスペースは含められません。
(&H20以外にスペースFONTを用意して、それをメッセージ中のスペース代わりにする事で対応可。)

今回反省点は、標準のメッセージ表示ルーチンがあるのに、それを使わずなぜわざわざシステムメッセージ表示専用のルーチンを作ってしまったのか…!?
言い訳ですが、一応毎日更新しているので、深く考慮できていません。
最初の方に組んだサブルーチンは、ほぼ忘れています。
でも、ここまで進んでしまったので、もう今更修正する気力はありません…。

こんな感じでロジックを考えていきますが、時々、自分でも驚くような、もの凄い効率的なロジックを組むことが出来ます。
凄い感動です。
こうしてプログラミングにハマっていくのでした…。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX雑記

2023年11月29日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第55回



3Dダンジョンロールプレイングゲーム 第55回目です。
今回もシステムメニューの「どうぐ」処理を作成します。

今回は、最後の「つかう」を組みます。

11_28_1.png
まず、システムメニューから、「つかう」を選択。

11_28_2.png
11_28_3.png
所持品を使ったメッセージと、効果が表示されます。

11_28_4.png
11_28_5.png
選択された所持品が装備品の場合は、今作では使えません。

11_28_6.png
11_28_7.png
それ以外の所持品は、今作では使っても何も起こりません。
その場合、所持品は無くなりません。
それら所持品は、イベント発生時に勝手に使います。

因みに「どくけしそう」は、毒状態からの回復。
「宿屋」は体力、魔力しか回復しないので、ゲーム序盤では毒状態からの唯一の回復方法です。

「エリクサー」は体力、魔力、状態異常(毒状態)からの全回復です。

11_28_8.png
今作では、各用途のアイテムが1種類ずつなので直接アイテムnw定でロジック振り分けていますが、本来なら用途区分を持たせ、用途によって振り分けるようにします。
そして、別途効果値を持たせ、その効果値で使用した際の効力を変動させます。
そのあたりは、「魔法」でやります。(回復1(弱)、回復2(強)等)

これで「どうぐ」全ての処理完了です。

次回は「システムメニュー」の最後、「まほう」を作成します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年11月28日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第54.5回



3Dダンジョンロールプレイングゲーム 第54.5回目です。
.5なので、バグです。

システムメニューの「どうぐ」の「そうび」処理を前回作成しました。
その際に発見したバグになります。

ステ−タス表示をするために、メッセージデータに直接値を書き込んでいます。
一度、装備した状態でステータスを表示。
11_27_7.png
11_27_8.png

装備を外した状態で、再度、ステータスを表示。
11_24_1.png
11_27_8.png

「つよさ」欄の攻撃力には外した状態が反映されているのに、「そうび」欄は装備したままになっています。

これは、装備している時のみメッセージデータに装備品名を書き込んで、装備していないときは何もしていないためです。
何も装備していないときは、「空白」を書き込む必要があります。
と言う訳で、解消するには、ステータス表示する前に一度全装備品名エリアと、状態エリアをスペースクリアすればいいです。
これを忘れていました…。
その他の数字エリアは、必ず上書きするので問題なし。

で、修正。
11_29_1.png

11_24_2.png

無事、装備を外した際、装備名が空白になりました。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年11月27日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第54回



3Dダンジョンロールプレイングゲーム 第54回目です。
今回もシステムメニューの「どうぐ」処理を作成します。

今回は、「そうび」を組みます。

11_27_3.png
まず、システムメニューから、「そうび」を選択。

11_27_4.png
選択された所持品が、装備品でない場合はメッセージ表示。

11_27_5.png
11_27_6.png
選択された所持品が、既に装備されている場合は装備を外します。

装備品を装備する際、気を付けなければいけないのが、装備部位(剣、盾、鎧、兜)。
選択した装備品が、剣なら他の剣を装備していないか?、鎧なら他の鎧を装備していないか?と、部位毎にチェックする必要があります。
ロジックを組んでみました。
11_27_2.png
選択した装備品の部位に、既に他の装備がされていればAレジスタに「1」を、されていなければ「0」を返します。
「1」の時は、HLレジスタに既に装備されている装備品の、所持品格納ワークのアドレスを返します。

11_27_9.png
装備します。
なお、既に装備されていた装備品は、自動で外します。
いちいち装備外すの面倒ですからね。

ステータスで装備品込みの値が変化したか確認。
11_27_7.png
11_27_8.png
「どうのけん」装備時。攻撃力は「10」。

11_27_10.png
11_27_11.png
「てつのけん」装備時。攻撃力は「15」。

11_27_1.png
「そうび」処理完了です。

次回は「どうぐ」の最後、「つかう」を作成します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年11月26日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第53回



3Dダンジョンロールプレイングゲーム 第53回目です。
今回からシステムメニューの「どうぐ」処理を作成します。

「どうぐ」メニューは、さらに「つかう」、「すてる」、「そうび」に分かれます。
今回は一番簡単な、「すてる」から組んでいきます。

11_26_1.png
まず、システムメニューから、「どうぐ」を選択。

11_26_2.png
何も持っていなければメッセージ表示。

11_26_3.png
所持品リストが開くので、捨てたい所持品を選択。

11_26_4.png
動作メニューが開くので、「すてる」を選択。

11_26_5.png
アイテムを捨てました。

11_26_6.png
11_26_7.png
この時、装備中の装備品は捨てられません。

11_26_8.png
また、重要品も捨てられません。

11_25_1.png

「すてる」処理完了です。

次回は「どうぐ」の「そうび」を作成します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2023年11月25日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第52回



3Dダンジョンロールプレイングゲーム 第52回目です。
今回からシステムメニューの「どうぐ」処理を作成します。

その前に、「どうぐ」のシステムメッセージには、「『やくそう』をつかった!」など、アイテム名+メッセージを表示する処理が必要になります。
11_26_5.png

そこで今回はアイテム名などの後ろにあるスペースを削除(トリミング)し、メッセージと引っ付けて表示するロジックを組んでいきます。
11_26_9.png
通常はアイテム名を『』で囲って表示するが、ダメージ値の表示など囲わない場合は&HD33Bをコールする。































INOUT
HLアイテム名先頭アドレスなし
DEメッセージ先頭アドレス
Bアイテム名桁数(スペース含む)
Cメッセージ桁数

やってることは簡単。
アイテム名をワークに転送して、その転送し終わったアドレスから前向きに、スペースか確認していき、スペースではなくなったアドレス+1から今度はメッセージを転送し、それを表示するだけです。

このロジックを使えば、「どうぐ」だけでなく、「『スライム』が、あらわれた!」や「『かいふく』のじゅもんを、となえた!」など、名前+メッセージが簡単に表示できます。

では、次回は「どうぐ」の「すてる」を作成します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発
検索
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
広告
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
カテゴリーアーカイブ
ファン
QRコード