投稿

ゲームが完成しました!

 ついに、ゲームが完成しました! ゲームタイトルの名前は完成するまで悩んでいましたが、「まさおのBUY THE GAME」にしました!(主人公の名前はまさおです。) 今回のゲーム制作について振り返りたいと思います。 ゲーム制作当初は、どんなゲームを作っていくかイメージが湧かず、ふわっとした状態からのスタートでした。しかし、作っていく最中にストーリーのアイデアを色々思いついて、ゲーム完成のイメージを固めることが出来ました。 ゲーム作りは楽しかったです。自分の作ったアイデアをどんなコードにすれば実現できるか考える時や、それが思い通りの挙動をしたときに凄く感動しましたね。達成感がありました。 思い通りに行かなかったものは、chatgptの力を借りてなんとか形に出来ましたが、少し悔しいです。chatgptが綺麗なコードを書いてくれるので。 ゲーム作りを通して気を付けるポイントがいくつかありました。 ・変数のスペルミス ・文法間違い ・冗長なコードを作らないこと 今回私が作ったプログラムは、プログラミング上級者が仕上げると恐らく半分くらい短くなるのではないかと思いました。特にfieldpaint()関数のタイル描画部分はもっと可読性の高い書き方があったのではないかと思います。私の実力はまだまだ低いレベルだと感じましたが、楽しくプログラミングを続けて少しずつステップアップしていこうと思います。 ということで、今回でゲーム制作記の投稿を最後にしたいと思います。 ありがとうございました!

ゲームクリア判定を追加

イメージ
 今回はゲームクリア判定を追加しました。 このゲームは、主人公が10000マチャオを集めてスゲーステーション2を買うことでクリアすることが出来ます。 (マチャオはゲーム内の通貨です。) このコードが、ゲームをクリアするか否か判定します。 1万マチャオあると移動キーを無効化するdisableMovement()と、ゲームクリア画面を描写するgameclear()が実行されます。 1万マチャオ以下の場合、所持金を確認できる画面が出ます。 gc . fillText ( "主人公「今持ってるお金は" + money + "マチャオだから...」" , 150 , 300 ); moneyは変数なので、所持金によって表示が変わるようになっています。 参考文献 ぴぽや倉庫  https://pipoya.net/sozai/assets/etc/other/ ドット絵世界 https://yms.main.jp/ 次回でゲーム制作記は最終回となります。

マップ作りとイベント追加

イメージ
 今回は、マップと橋を直すイベントを追加しました。 これはmap4の画面です。画面中央の川に架けられている橋が壊れていて、先に進むことが出来ません。先には買取屋があり、ゲームクリアするためには買取屋でお宝を売る必要があります。橋に表示されている吹き出しタイルに移動すると、橋を直すためのヒントが貰えます。 主人公"橋が壊れていて先に進めない...この程度なら自分で直せるかな?"    "大工のおじさんに道具を貸してもらおう" ゲーム内のどこかにいる大工のおじさんを探して、話しかけるとイベントが始まります。 大工のおじさんに話しかけると、道具とお小遣いを貰えます。 橋に戻り、吹き出しタイルに移動すると、イベントクリアとなります。 このテキストの後、移動キーを押すと橋のタイルが変化します。 今回使ったflagはflag6、flag7です。 flag6 ・・・ 橋が修理され、通れるようになる flag7 ・・・ 大工に道具を貰っているか 次回はゲームクリア判定を作り、動作検証をしたいと思います。 参考文献 ぴぽや倉庫  https://pipoya.net/sozai/assets/etc/other/ ドット絵世界 https://yms.main.jp/

イベント追加

イメージ
 今回は、民家のおばあさんの手伝いをするイベントを作成しました。 吹き出しタイルに移動するとイベントが始まります。 イベントが始まると、主人公はおばあさんからお隣さんに荷物を届けて欲しいと頼まれます。 主人公は頼みを引き受け、お隣さんに荷物を届けるとお礼としてお小遣いを貰えます。 これはおばあさんの家から出たときの画面です。お隣さんに届けて欲しいとのことなので、ちょうど右側にある民家の中にいるお姉さんに話しかけるとイベントクリアとなります。 イベントが始まる前でもお姉さんに話かけることが出来るように、flag2で話す内容が変わるように設定しました。 RPGゲームでよくある、イベントが無いときは雑談や独り言を話すNPCのような感じです。 参考文献 ぴぽや倉庫  https://pipoya.net/sozai/assets/etc/other/ ドット絵世界 https://yms.main.jp/

Enterキーを押して会話を進められるようにしてみた。

イメージ
 今回は、ストーリーの会話をEnterキーを押して進められるように改良しました。 民家にいるおばあさんに話しかけると、会話が始まります。 このとき、移動キーを押しても主人公は動きません。 Enterキーを押すと、次の会話に進むことが出来ます。 最後の会話まで行くと、移動キーで主人公を動かせるようになり、会話を終了できます。 会話の進行が無く、単発の会話の場合は移動キーの制限はありません。 単発会話と、会話進行の違いは、以下の通りです。 ・単発会話 caseの値の会話テキストを表示する。 【終了】 ・進行会話 caseの値の会話IDが設定される。(case 80の場合は会話ID 80 ) 会話の進行回数 conversationStep に0が代入される 会話判定 ConversationActive が trueとなる。 移動キーボタンを無効化する Enterキーの入力を受け付ける。 会話1が表示される。 Enterキーを押す→会話進行回数が1になる。 会話2が表示される。 Enterキーを押す→会話進行回数が2になる。 最後の会話が表示される。 Enterキーの入力を受け付けない。 移動キーボタンが有効化される。 会話判定が falseとなる。 【終了】   このように、会話の進行を追加するだけでもコードを追加する量が増えることが分かりました。 今回も、一部chatgptの力を借りてみましたが、chatgptのコードをそのまま利用するのは難しいと感じました。理想的なコードを生成するには、指示を細かく伝える必要がありました。また、生成されたコードが動作しなかった場合はそのコードの不具合を自分で見つけ、chatgptに修正点を伝えることで、正常に動作するコードに改良してくれました。

マップ作り(map3)

イメージ
 今回は迷路マップを作りました。 こちらが迷路マップです。↓ 一見すると低木が一面に広がっており、迷路のようには見えません。 全て同じ低木に見えますが、歩行可能タイルがあり、歩くことが出来ます。 これは歩行不可タイルを黒くしたものです。赤い矢印がスタート地点で、赤い丸がゴールとなっています。 普通の迷路だと簡単にゴール出来てしまうので、難易度を上げるために全面同じ低木で道を見えないようにしています。 ゴール地点には、お宝が隠されています。お宝は売却することでお金にすることが出来ます。 初見のプレイだと見つけるのは困難なのでスタート地点付近にヒントが表示されるタイルを設置する予定です。 そもそもこのマップにどうやって入るのかというと、電気屋さんがあるマップのデザインの異なる低木タイルから入ることが出来ます。

マップ作りとストーリー

イメージ
 今回は、マップ(map2)とストーリーの冒頭部分を作りました。 map2の画面です。↓ map2は中田電気という電気屋さんの店内です。店内には、主人公の欲しい物である 「スゲーステーション2」が並んでいます。 ストーリーの冒頭部分について このゲームは電気屋さんの店内から始まります。 主人公は電気屋でスゲーステーション2を買おうとしますが、お金が足りず買えませんでした。 そこで主人公は、村で人助けをしてお小遣いを貰い、スゲステ2を買う事を決心します。 これがストーリー冒頭です。 実際のゲームでは、店員に話しかけずに外へ出ようとすると、「まずは店員に話しかけてみよう」というテキストボックスが出現し、外へ出られないようになっています。 吹き出しマークに移動することで、店員と会話出来ます。店員と会話するとフラグが立ち、外へ出られるようになります。 今後の予定、実現したいアイデア ・迷路マップの作成 ・買取所の作成 ・人助けイベント(複数個) 参考文献 ぴぽや倉庫  https://pipoya.net/sozai/assets/etc/other/ ドット絵世界 https://yms.main.jp/