2023年12月24日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第75回
3Dダンジョンロールプレイングゲーム 第75回目です。
今回は、戦闘の「勝利」処理を組んでいきます。
討伐した敵から得られる「経験値」と「お金」を加算します。
地味に、お金と経験値の上限チェック(値65,535)がめんどくさい。
ステータス表示の時に作成したレベルアップ必要経験値を得るためのサブルーチンをコールします。
&HD0CE~D0CF(16ビット)にレベルアップ必要経験値が入るので、プレイヤーの経験値と比較し、超えていればレベルアップサブルーチンをコールします。
次回は、「レベルアップ」処理を組んでいきます。
2023年12月23日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第74回
3Dダンジョンロールプレイングゲーム 第74回目です。
今回は、戦闘メニューの「こうげき」を組んでいきます。
ダメージ表示の際、またワークのスペースクリアを忘れて変な数字が表示されたので、バグフィクス追加。
以前組んだ、「与ダメージ値」算出サブルーチンをコール。(&HB26C)
(乱数*(攻撃力-敵防御力/2+1)/255+攻撃力-敵防御力/2)/4 |
与ダメージ値表示。
以前に組み忘れていましたが、「クリティカルヒット」(会心の一撃)を組み込んでいます。(&HB252~)
確率 | 計算式 |
1/32 | 攻撃力-(攻撃力/2*乱数)/256 |
あと、以前の「まほう」の「こうげき」魔法の飛び先は&HB276です。
魔法サブルーチンでセットした与ダメージ値(&HD645~D646)をここで読み取って、与ダメージ値とします。
次回は、戦闘の「勝利」処理を組んでいきます。
2023年12月22日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第73回
2023年12月21日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第72回
3Dダンジョンロールプレイングゲーム 第72回目です。
今回は、戦闘メニューの「にげる」を組んでいきます。
逃走成功時、BGMを消しますが音が鳴り続けたままなので、音を消す処理追加。
以前に組んだ、「逃走成功判定」をコールします。
敵種 | 計算式 |
スライム、シルバーウルフ、ミミック、ワイト | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜63)) |
スケルトン | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜94)) |
ゴースト | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜127)) |
マミー、ドラゴン | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜255)) |
判定の結果、逃走成功の場合。
逃走失敗の場合。
逃走成功した場合は、戦闘終了処理へ。
「戦闘中フラグ」を下げて、画面を消してBASICへ戻ります。
次回は、戦闘メニューの「ぼうぎょ」を組んでいきます。
2023年12月20日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第71回
2023年12月19日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第70回
2023年12月18日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第69回
2023年12月17日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第68回
3Dダンジョンロールプレイングゲーム 第68回目です。
今回は、戦闘の前処理を組んでいきます。
戦闘中である事を示す「戦闘中フラグ」を立て、遭遇した敵のパラメータをワークに納めます。
この「戦闘中フラグ」を参照することで、魔法の「戻る」や「攻撃」の使用可否が分かれます。
そして、武具・防具を含めた、攻撃力・防御力・素早さの算出。
これは、ステータス表示時にサブルーチンを作りましたので、それをコールします。
そして、攻撃順序を決めるために敵の先制攻撃判定をします。
これは、以前に組んだ敵先制攻撃判定をコール。
(素早さ*乱数(0〜255))<(敵防御力*乱数(0〜63)) | 敵の先制攻撃 |
敵の先制攻撃なら、「敵のターン」処理へ飛ばします。
次回は、「戦闘メニュー」を組んでいきます。
2023年12月16日
細かく修正N
「リンク」にTMS9918風簡易ペイントツール「piroPAINT_9918」を追加。
「ゲーム制作」の「3Dダンジョンロールプレイングゲーム」で前後回へのリンク切れが、また複数見付かったので修正。
2023年10月5日記事「【ゲーム制作】3Dダンジョンロールプレイングゲーム 第22回」の記事修正。
・計算式を判断可能なものに修正。
・レベルアップテーブルのレベル2必要経験値0→7に修正。
・計算式の出展元を掲載。
それ以外は、画像の貼り直しや、記事の誤記の修正程度です。
2023年12月15日
【ゲーム制作】3Dダンジョンロールプレイングゲーム 第67回
3Dダンジョンロールプレイングゲーム 第67回目です。
今回は、戦闘の前準備として各々計算式を組んでいきます。
計算式出展:『GCGX』
https://gcgx.games/dq1/damage.html
まず、プレイヤー→敵の与ダメージ値計算。
(乱数*(攻撃力-敵防御力/2+1)/255+攻撃力-敵防御力/2)/4 |
必要なので16ビット割り算ルーチンを用意。
次に、敵→プレイヤーの被ダメージ値計算。
条件 | 計算式 |
敵攻撃力-防御力/2≧敵攻撃力/2+1 | (乱数*(敵攻撃力-防御力/2+1)/255+敵攻撃力-防御力/2)/4 |
敵攻撃力-防御力/2<0 または 敵攻撃力-防御力/2<敵攻撃力/2+1 | 乱数*(敵攻撃力/2+1)/255+2 |
次に、敵の先制攻撃判定計算。
敵が先制攻撃ならAレジスタに1。
(素早さ*乱数(0〜255))<(敵防御力*乱数(0〜63)) | 敵の先制攻撃 |
次にプレイヤーの逃走成功判定。
逃走失敗ならAレジスタに1。
敵種 | 計算式 |
スライム、シルバーウルフ、ミミック、ワイト | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜63)) |
スケルトン | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜94)) |
ゴースト | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜127)) |
マミー、ドラゴン | (素早さ*乱数(0〜255))≧(敵防御力*乱数(0〜255)) |
最後に敵の逃走判定。
逃走するならAレジスタに1。
攻撃力(武具除く)/2≧敵攻撃力 | 且つ、逃走確立1/4 |
一応これだけの計算式が必要になります。
各計算ルーチンで、ループし計算結果を算出するBASICプログラムを組んで結果を検証。
想定範囲内の値しか出ないことを確認。
計算ロジック完成です。