3か月ぶりに進捗を報告する
ゲーム作り初心者のメンバーとだけ言っておこう

動かない時は
クリック
見ての通り、RPGのフィールド上の最低限の機能を作りました。
自機、壁、扉、グリッド移動、看板、敵とのエンカウント、バトル脱出後の後ずさりなど。
ツクールとかなら速攻作れますよねこれ…とか言っちゃいけない。
ツクールやウディタなどの便利ソフトは使用禁止
ぶっちゃけ製作効率なんてどうでもいいんだ
趣味として楽しければなぁ
さぁコーディングに自信のある者は今すぐYoYoGames公式サイトへ行け
急げっ 乗り遅れるな “ゲームメーカー・ラッシュ”だ
【紹介のコーナー】
1. 自機

主人公です。ふわふわ動くよ!
グリッドベースでちまちま移動します。


待機4方向、移動4方向でとりあえず8種類のアニメーションを作りました。
厳密なドット絵ではない。厳密じゃない方が好きなので。
今までは、衝突ベースの移動 (移動入力がされたら1マス横の中心部に点型のオブジェクトを設置→移動開始→点型のオブジェクトに衝突したら停止) というなんとも危うい方法でこの1マスごとの移動を成立させていたんですが、こんな不安定な方式は嫌だなあということで、衝突ベースではなく数値ベースで制御することに。
ちょっとずつ加速しながら進み、現在の位置から所定の距離を進んだら自動で止まる方式。グリッド移動の先人がさっぱり見つからず、結局全く関係ない作例(→)を参考にコードを書きました。元サイトの方、ありがとう。こんな使い方をされているとは思わないだろうな。
2. 壁、扉

世界樹方式のドア。隣接&扉の方を見てスペースキーを押すと開きます。
草の壁・開いてないドアは当たり判定がありまーす。そんだけ。
ドアの仕様は他人のコードを一切見ずに作れたので嬉しい。
でもデザインがダサい~。禍々しい模様のつもりだった…。そのうち直します…。
3. 看板


ダイアログ機能は以前(→)も作っていたのですが、ちょっと冗長すぎて再現するのが面倒だったので、今回は文字送りのないシンプル仕様に。
その代わり、看板ごとに表示される内容を変えられるようにしました。
最近アップされた公式のRPGチュートリアルを参考に、Create Code機能を用いて個別に文字列を設定。隣接するとその文字列を取得、看板を調べると取得した文字列がダイアログに表示されるという方式。
4. 敵とのエンカウント、後ずさり

動かない時は
クリック
エンカウントの実装は簡単なんですよ。
敵のオブジェクトに当たったらroomを戦闘画面に変えるだけですからね。
※戦闘画面はまだハリボテですが脱出はできます
一方で、戦闘脱出後の後ずさりを作るのには苦労しました…。
フィールド画面に出たかと思いきや敵のオブジェクトに当たってまた戦闘画面に戻ってしまったり、後ずさりじゃなくて背中を向けて逃げてしまったり、後ずさりの方向が取得できなかったり、二度三度と苦戦しました。
特に後ずさりの方向の取得!右から敵に突っ込んだら右に抜け、上から敵に突っ込んだら上に抜け…と本家世界樹同様の仕様を目指したわけです。
当初は、敵のインスタンスに自機に突っ込まれた方向を保存させようとしたのですが、同オブジェクトの複数インスタンスに勝手に優先度を割り振るGMSの仕様と相性が悪く、インスタンスによって方向が保存されたりされなかったりとうまくいきませんでした。
そのため、何体もいる敵ではなく、一体しかいない自機インスタンスにエンカウント時の方向を取得させ、グローバル変数に保存→脱出時に参照することに。めでたく、安定した脱出イベントが作れました。エンカウント/脱出の演出は、その内alarmイベントでも使って実装します。
思いつくまま、適当に継ぎ足し継ぎ足しして作っているので、コードがめちゃくちゃ冗長だし汚い…。使ってない変数が500億個ある~。リファクタリング(←かっこいい)をしないといけませんね!
とはいえ、GMS2を再開した去年の夏頃に比べれば遥かにましなものが書けるようになっていると思いたい。配列とか構造体なんかはサッパリ使いこなせていないので、勉強あるのみ…。