私が事業として開発している RPG です。
小中高校生を対象にして RPG の作り方を説明することを目的としています。
開発途中のもので半端に見えますが、レトロゲームのファミコン版ドラクエIII と同等のシステムはおおむねできていると思います。
■ブラウザでプレイできるRPG
https://web6047.sakura.ne.jp/cgi-bin/prj/20230430-RPG/20241029-全ブラッシュアップ5%20-%20snapshot%2020241207/wiz5-2.html
■ソースコード添付(ZIP形式 2.7MB)
https:∥web6047.sakura.ne.jp/cgi-bin/prj/20230430-RPG/20241029-全ブラッシュアップ5%20-%20snapshot%2020241207/RPG.zip
※ ZIP の URL のみ、∥ は // に直してアクセスしてください。
ZIP 内の index.html が RPG プログラムの本体ですが、そのままダブルクリックでブラウザで開いても動きません。
「ブラウザからウェブサーバーにアクセスする形」で index.html を開くと動作するはずです。
ウェブサーバーの作り方が分からない場合:
「簡単WEBサーバー」フリーウェア
https://www.vector.co.jp/soft/dl/winnt/net/se381431.html
ダウンロードして起動したら、
追加ボタンを押し、ZIP を展開して出来た RPG フォルダを指定します。
待ち受け開始します ボタンを押して、
ブラウザから
http://localhost/RPG/
にアクセスすると動くと思います。
プログラムは個人開発でよくあるような「個人的な偏りのあるプログラム」をなるべく避け、一般的で当たり前のやり方、複雑ではないやり方、を心がけて作られています。
しかし、開発途中で、説明もないため、理解するには難しい部分も多くあると思います。
たとえば、プログラム中に Promise という単語が出てきますが、説明なしだと理解はきついと思います。
Promise のもっとも簡単なサンプルは、
async function test() {
console.log( \u0026quot;abc\u0026quot; );
await new Promise( function( ok ) {
setTimeout( ok, 1000 );
} );
console.log( \u0026quot;def\u0026quot; );
}
test();
これはコンソールに abc と表示した後、1秒待ってから、def と表示します。
Promise を使うと、関数の途中で何かの処理の終了を待つことができるんですよね。
(await のところで停止し、Promise による ok() の号令を待つ、と言いますか)
(この RPG プログラムでは await で関数を呼び出していて、その関数が new Promise(...); を return している形になっていて、説明なしでは理解に苦しむのでは、、と思います (o_ _)o )
>RPGをプレイしながら、プログラミングを勉強したいです。
とのことなので、現状でできる限り応えてみようと思いましたが、説明なしでソースコードだけを見ても理解はなかなか難しいかなと思います。
参考、見学みたいな感じになるかもしれません。m(_ _)m
追記:
リンク先RPGの操作方法の説明を忘れていました。
上下左右キーで移動します。
Zキーで決定、Xキーでキャンセルです。
青いパネルに乗っていいえを選ぶと戦闘になります。
使えるコマンドは「はなす」と「どうぐ」のみで、他はダミーです。
戦闘の相手は強敵ですが、
カレンたたかうサキュバス
ソルダどうぐ赤色の玉
ベナクたたかうサキュバス
ローレンどうぐ赤色の玉
で勝てることが多いです。