This is My Dungeon 進捗05
こんにちは、AK18です。
This is My Dungeonの進捗記事です。
今回はモンスターと冒険者の戦闘が出来るようになりました。
https://twitter.com/AmagumoHorn/status/1521537686485766145
これからユニットにスキルを実装したり
モンスターのシナジーを発生させたりできるようにしていきたいです。
クリエイター支援サイト Ci-en
フォローするにはユーザー登録が必要です。
あまぐもホルン 2022/05/20 08:57
こんにちは、AK18です。
This is My Dungeonの進捗記事です。
今回はモンスターと冒険者の戦闘が出来るようになりました。
https://twitter.com/AmagumoHorn/status/1521537686485766145
これからユニットにスキルを実装したり
モンスターのシナジーを発生させたりできるようにしていきたいです。
あまぐもホルン 2022/05/02 18:00
ゆっくりマインカート解説記事 三回目。
今回は背景レイヤーの生成とスクロールについてです。
GameMakerのプログラム的な話が続くので興味のある方だけどうぞ!
プレイ画面へはこちらから!
ゆっくりマインカート(ニコニコアツマール)
ゆっくりマインカートの記事のまとめはこちら
ゆっくりマインカートまとめページ(Cien)
単純にスクロールを行いたい場合は
BackgroundレイヤーのHorizontalSpeedを設定すればいいんですが、
その場合はスタート直前・ゴール直後のカメラが移動していないタイミングや
ミスしてトロッコが後に戻るタイミングでもスクロールして不自然になるので
カメラオブジェクトの位置を参照しながらスクロールするようにしました。
背景レイヤーには1枚につき4つの情報を設定します。
これらの設定情報を参照しながらレイヤーを作成します。
今回はトロッコに追従するカメラのx位置を使いました。
毎ステップ、カメラの位置を参考にレイヤーのx位置を再計算することで
スクロールを実現しています。
具体的には(カメラのx位置)×(スクロール相対速度)+(オフセット)
という計算式です。
今回こんなスクロール方法を考えましたが、
ミスした時だけBackgroundレイヤーのHorizontalSpeedをいじって、
復帰時に元に戻すという方法でもよかったかなと思います。
今度似たようなことをするときに試してみたいと思います。
今回はこんな感じです。
GameMakerの参考になれば幸いです。
ありがとうございました!
ゆっくりマインカートの背景の生成と制御のプログラムコードを記載しています
無料
あまぐもホルン 2022/04/30 18:00
ゆっくりマインカート解説記事 二回目。
今回はトロッコのジャンプ処理についてです。
GameMakerのプログラム的な話が続くので興味のある方だけどうぞ!
プレイ画面へはこちらから!
ゆっくりマインカート(ニコニコアツマール)
ゆっくりマインカートの記事のまとめはこちら
ゆっくりマインカートまとめページ(Cien)
トロッコのジャンプは以下の条件で作っています。
最終的にこんな処理になりました。
一定時間で落下するだけなら物理公式をそのまま使えてたんですが、
ジャンプボタンを離すまで落下しないと
ボタンを押し続けても一定時間でスムーズに落下する
というルールを両立させたせいででだいぶ苦労した記憶があります。
if(canJump)
{//ジャンプできる状態
if(_JumpKeyPressed)
{//ジャンプキー入力
canJump=false; //ジャンプ可能フラグを消す
jumping=true; //ジャンプ中フラグを立てる
vspeed=jumpSpeed; //上方向に速度を付ける
//alarmが起動するとjumpingフラグが折れるようにする
alarm[0]=jumpTime;
}
}
else if(jumping)
{//ジャンプで上昇中の状態
vspeed+=0.5; //少しずつジャンプスピードを下げる
if(_JumpKeyReleased)
{//ジャンプキーを離すと落下する
jumping=false; //ジャンプ中フラグを折る
alarm[0]=-1; //alarmを強○的に終了させる
}
}
else
{//落下中の状態
//落下最大速度になるまで加速させる
if(vspeed<fallSpeedMax) vspeed+=0.5;
//落下(vspeed<0)するまでは急いでvspeedの値を減らす
if(vspeed<0) vspeed+=2;
}
トロッコは移動や操作を担当するトロッコ本体と
アイテムとの当たり判定を担当するゆっくり霊夢の
2つのオブジェクトにわけてつくっています。
2つに分けることによってジャンプ時にゆっくり霊夢がトロッコから浮く
という処理を実装しやすいかなと考えてもいました。
最初はトロッコのyの履歴を記録していって、
ゆっくり霊夢は履歴を遡ってyを取得することを考えていたんですが
最終的にイベントのBegin/Endを使うことで簡単に実装できました!
具体的な流れはこんな感じです
ジャンプって難しいと感じた処理でした。
他の人はどんなプログラムを書いているのか気になります。
学びが足りない...
あとは、ステップのタイミングをずらすことで
ゆっくり霊夢の慣性と自然なジャンプを表現できたのは良かったです。
最初はトロッコの高さ履歴を取るかとか考えてめんどくさかったので、
かなり嬉しい発見でした。
あまぐもホルン 2022/04/28 18:00
ゆっくりマインカート解説記事 一回目。
今回はレールとトロッコの当たり判定についてです。
GameMakerのプログラム的な話が続くので興味のある方だけどうぞ!
プレイ画面へはこちらから!
ゆっくりマインカート(ニコニコアツマール)
ゆっくりマインカートの記事のまとめはこちら
ゆっくりマインカートまとめページ(Cien)
当たり判定の処理はいろいろ方法があるのですが
最終的に以下のルールに落ち着きました。
トロッコと3種類のレール(直進・上り坂・下り坂)には、
それぞれに下の図のように当たり判定を設定しています。
詳しく言うと、トロッコはスプライトのコリジョンマスクで設定し、
レールは線分データを各レールインスタンスの変数に記録させています。
レールとトロッコの当たり判定は2段階に分けて行ってます。
第一段階はトロッコとレールがぶつかっているかどうかのチェック。
第一段階でぶつかっていると判断されると、第二段階でぶつかっている高さを算出します。
-ピンクの線だけにぶつかっている
- 黄色の線だけにぶつかっている
- 両方の線にぶつかっている
- どっちにもぶつかってない
どちらかの線にぶつかったと判断されれば第二段階へ進みます。
当たり判定って難しいなって感じでした。
当たり判定の突き抜けや接触判定時にトロッコが振動するなど、
3Dアクションゲームっぽいバグも発生して微調整に苦労した記憶があります。
バグの対処の過程で
image_angleを設定するとスプライトのコリジョンマスクも
一緒に回転する事を発見したりしました。(もっと早く知りたかった...)
スプライトのコリジョンマスクタイプをPreciseにしたら
もっと簡単に実装できたかもしれません。
次の機会で試してみたいと思います。
今回はここまで。
ありがとうございました。
あまぐもホルン 2022/04/26 18:00
ゆっくりマインカートを公開してました!
フリーゲームですので、ぜひプレイしてみてください!
プレイ画面へはこちらから!
ゆっくりマインカート(ニコニコアツマール)
4月25日にプレイ数1000回になりました!
遊んでくださった皆様、ありがとうございます!
ゆっくりマインカートの記事のまとめはこちら
ゆっくりマインカートまとめページ(Cien)
東方Projectをモチーフにしたトロッコアクションゲームです。
レールの穴をジャンプで越えながらアイテムを集めてください。
プレイ時間は1ステージ1分ほどです。
ステージ背景を描いてくださったモモソーセージ様のおかげで
素敵なゲームになりましたのでそちらの方もお楽しみください!
ノーマルの霊夢のステージ
スピードアップの魔理沙のステージ
レールが凍って滑るチルノのステージ
画面がどんどん暗くなってゆくミスティのステージ
一部のレールが隠された幽々子のステージ
コースが隆起したり陥没する空のステージ
水流に押されるわかさぎ姫のステージ
頑張って作ったのでぜひプレイしてみてくださいね。
ご感想もぜひぜひお待ちしております!