Stage01のイベント(コード解説編)

Stage01では、Stage01に入った時のイベントと招き猫を倒した時の二つが動きます。
まずはイベントの条件付けを置いているtick処理の部分から見ていきます。
入った時のイベントを"firstEvent"と名付け、主人公がタイルの6に位置し、
firstEventが未だ動いていないfalseの状態の時に、最初のイベントが起こります。
倒したときのイベントを"defeatEvent"と名付け、招き猫のlifeが0且つdefeatEventが未だ動いていない状態の時、このイベントが起こります。
またtick処理の内容上、イベントが上書きされてしまうので都度returnを入れて防いでいます。同時に、イベントをtickから外すことでイベント中にプレイヤーと敵の動きを止めて、イベントが起こったことをプレイヤーに知らせています。


次にeventpaintの内容ですが、グローバル変数にdialogueStepを0として置き、
eventpaint内での進行度を管理するのに使っています。
このイベントでは"handleDialogue(e)"を使って、スペースキーを押すと数値が足されて次のセリフに進むようになっていますが、最初のセリフは自動で始まるようにしたかったのでその中には入れていません。セリフを表示している枠などは"SetContext"関数内で、背景を灰色、文字を白色にして、位置に関しては手入力で地道に調整しています。(この作業どうにかならないものか...)右下に表示している"Skip"の文字は別で"SkipContext"関数を使って表示しています。これ以降もセリフは続きますが、長くなってしまうので割愛します。以上が簡単な解説です。
これ以降のステージでも同じ様な手順で進めていきます。




という訳で今回はこんな感じで終わります。
裏話をすると、最初のイベント中に「主人公を後ろに向かせて道が塞がっていることを確認する演出」と「最初はほぼ強制的にダメージを喰らい、戦わなくちゃいけないことを示唆する演習」を取り入れようとしていましたが、無事断念しまして今の形に落ち着いた所存です。物語的な導線はほぼ皆無ですが、謎めいた感じは前作も同じなので雰囲気は守れているので良しとします。
余談が長くなってしまいましたが本当に終わります。
次回はStage02のイベント紹介です。
お疲れさまでしたー。


参考文献

田中賢一郎『ゲームで学ぶ JavaScript 入門』インプレス, 2015年
田中賢一郎『ゲームを作りながら楽しく学べる HTML5+CSS+JavaScript』インプレス, 2017年
田中賢一郎『ゲームで学ぶ JavaScript 入門 増補改訂版〜ブラウザゲームづくりでHTML&CSSも身につく!』インプレス, 2022 年

素材:
ぴぽや倉庫 https://pipoya.net/sozai/
ドット絵世界 https://yms.main.jp/

コメント

このブログの人気の投稿

今後やりたいこと、懸念点など

はじめに

主人公に歩行アニメーションを追加する