投稿

1月, 2026の投稿を表示しています

プログラミング日誌11~最後の投稿と完成~

イメージ
 ついにこの時を迎えました… そうです!完成です!! ようやく完成と呼べるとこ路までたどり着きました 欲を言えばもっとやりたいことがあったのですが、時間とやる気の問題で妥協しました 何を追加したかったかは多いので省略します ということでとりあえず前回の続きを書いてから総評といきます 前回はモンスターが出てくるファイルが完成、まで行きましたね 今回はファイルをつなげる、そのファイル内のマップ及びコードを完成させるところまでで完全終了です まずファイルをつなげるところですが、 if ( talkend ){             // 別ファイルへ移動             window . location . href = "真実.html" ;                 } とてもシンプルでグローバル変数にtalkendという関数を加え(ここではfalse)、会話の終わり部分でtrueにしてやることで上記のコードが呼ばれ上のファイルに飛ぶというわけです 次にその真実とかいうファイルを見ていきます この二つのステージで成り立っています なんと家の地下にこんな場所につながっていたなんて!という感じです (いや気づけよ) ここではファイル名にあるように真実が語られます 会話のコードやセリフボックスは他のファイルのものと同じなので特に説明はしません 一応こんな感じです 家の外には出られないようになっています 一旦行こうとするとわかります そしてストーリーを成り立たせるために以前研究ノートで作ったファイルの方もかなりいじりました map : 12 ,   // map12 のとき             x : 13 ,             y : 3 ,             texts : [         ...

プログラミング日誌10~修正・追加の山~

イメージ
 前回からかなり修正と追加を加えてもはやどこをいじったかすべて把握するのが難しくなってしまいました... できる限り思い出してお伝えできればと思います まずは前回からの目標①の体力バーです 左上のバーがそうです player変数に現在の体力だけでなく最大の体力を指定しました そしてライフバーを描画するための関数を設定し、そこに変数から体力を呼び出しています ダメージを受けると現在体力を参照にゲージも減ります 体力に関連して回復スポットまで作っちゃいました         var healUsed = false ; //回復を使ったかどうか         var healStage = 2 ;         var healX = 1 ;         var healY = 18 ; まずグローバル変数に回復に必要なものを入れました 書いてある通り回復を使ったかどうかを判断する変数と回復する座標です             //回復の関数             if (                 ! healUsed &&                 stage === healStage &&                 syujinnkou . px === healX &&                 syujinnkou . py === healY             ) {   ...

プログラミング日誌9~細かい追加・修正点~

前回ほとんど完成したと書きましたが、バグがあったのでそれをここに記します それに加え追加点が何個かあるのでそちらもまとめて報告します まずバグについて これはかなりとんでもないバグでした モンスターは倒されたら透明=ステージから消えるという感じになっているのですが、透明になった後も当たり判定がそこに残されるというバグです これは見た目は描画しないというプログラムは働いているのですが、当たり判定の処理がまだ残っているため起きていました そこで if ( pmonster . dead || pmonster . life <= 0 ) return ; このコードを当たり判定を判断するコードの中に組み込みました これはこのモンスターはもう存在しないものとして扱うという宣言をするコードです ifは中の文がtrueなら実行されます pmonster.deadはfalseだと生きている、trueだと死んでいるの二つを判断しています pmonster.lifeはモンスターの体力を判断しておりlife<=0はモンスターが死んでいる状態を表します そして||これはAまたはBのどちらかがtrueならtrueを表してます でreturnはこの関数をすぐに終わらすという意味になります これを当たり判定のプログラムの先頭に置くことで 1、この関数が呼ばれる 2、死んでいるか判断する YES→即return NO→当たり判定処理に向かう モンスターが倒されるたびにこの関数が働くので当たり判定がなくなります 倒しても当たり判定が残るなんてゲームとひては致命的なミスなので早めに気づけて良かったです 続きまして追加点です           var talkTexts = [];         var talkone = false ;         var talkgolem = false ;         var talkend = false ; グローバル変数を3つ追加しました talkTextsは前回から形を変更しました まずはtalkTextsから 今までは一つしか会...

プログラミング日誌8~終盤戦~

イメージ
 あけましておめでとうございます いよいよこのファイルのプログラムも終盤戦に差し掛かってます 前回 1エラーを解消しマップ4へとつなげる 2たどり着いた先でコメント欄的なのが表示され会話シーンへと突入する 3マップ4から以前研究ノートで作ったマップへとつなげる これが目標でしたがすべて完成しました! まず1に関してはエラーは解消しました 全てのモンスターを倒すとこの扉が現れ、中に入れるといったプログラムを組んでいたのですがここでエラーが発生し進めませんでした なので左の扉がない状態ですでに壁に入れるようにしました つまりモンスターを倒さなくてもマップ4にいけるのです まぁ壁の中に突っ込む人はなかなかいないと思うので、大丈夫かと そしてプログラムとしては「すべてのモンスターを倒すと扉の像に切り替わる」だけのこしました とこんなかんじです 通常の壁と床を描画しフラグを解消すると上記の扉付きの画像に切り替わります お次は2です var talkEvent = false ; //会話中かどうか         var talkIndex = 0 ;     //今何行目か         var talkTexts = [             "よくここまでたどりつきましたね" ,             "しんじつをしりたいですか" ,             "まぁもどればすぐにわかるでしょう" ,             "さようなら"         ]; 手順としてはまずグローバル変数を追加しました これで会話をいつでも呼び出せます //会話開始の判定             if (             stage === 3 ...