← 一覧に戻る
議論 フォーラム

GDevelopでスーパーマリオ風のしゃがみ動作を実装する方法

GDevelop 5でスーパーマリオブラザーズ風のファンゲームを開発されている方が、ゲームのしゃがみ動作を正確に実装する方法について、フォーラムで助けを求めています。

開発者は、プレイヤーが「S」キーを押すとしゃがみアニメーションに移行し、それに合わせた当たり判定(コリジョンマスク)が設定されることを目指しています。プレイヤーキャラクターのサイズは高さ32ピクセル、幅16ピクセルで、これにより16x16ピクセルのブロックの隙間を通り抜けられないようにしたいとのことです。

しゃがみ動作の実装に関するフォーラム投稿
しゃがみ動作の実装に関するフォーラム投稿

しかし、特に問題となっているのは、プレイヤーが「S」キーを押して16x16ピクセルの隙間にいる場合に、キーを離してもしゃがみ状態が維持されてしまう現象です。この状態でキーを離すと、キャラクターが「ジタリング」し、予期せぬ動作を引き起こしてしまうようです。

プレイヤーキャラクターの当たり判定に関する画像
プレイヤーキャラクターの当たり判定に関する画像

この問題の解決策として、開発者は過去のフォーラムの投稿なども参照しましたが、まだ成功していないとのことです。正確なマリオ風のゲームメカニクスを再現するために、このしゃがみ動作の安定化が不可欠となっています。

ノート
この投稿は、GDevelopコミュニティフォーラムでの実際の議論に基づいています。具体的な解決策はフォーラムスレッドで共有されている可能性があります。

この問題は、しゃがみ状態のフラグ管理や、隙間からの出入り時の当たり判定の切り替えロジックを慎重に実装することで解決できると考えられます。例えば、しゃがみ状態から解除する際に、キャラクターの真上に障害物がないかを確認するイベントを追加するなどの工夫が有効かもしれません。

元の情報源を見る →