Godotでプラットフォームゲーム基礎作成 その3 OneWayプラットフォーム(すり抜け床)
1. はじめに
Godotを使ってプラットフォームゲームを作成するための基本的な要素と手順を紹介します。
初心者を対象に、ゲーム開発の基本を学びながら、自分で簡単なプラットフォームゲームを作成できるようになります。YouTubeでもこの記事の内容に沿ってゲームを作っているので、動画を見ながら取り組んでみてください。
チャンネル登録していただけると嬉しいです。
環境
今回の動画では以下のバージョンを前提にゲーム作成を行います。
- Godot:4.3
2. One-Way Platform(すり抜け床)について
One-Way Platformとは、キャラクターが一方向しか通過できない床の事です。
例えば、下からジャンプして乗ることが出来る床がイメージしやすいと思います。
一方向にしか通れない床があると、ゲームの戦略性を増すこと
3. One-Wayの設定
TileMapLayer
ノードを選択して、下パネルのTileSet
を選択します。
厚さが薄い床画像を利用します。一般的なアクションゲームでも似たような画像を使っているので、
プレイヤーに説明することなく、すり抜けることを認識させやすいです。
Polygon 0
の項目にあるOne Way
のチェックボックスにチェックを入れることで
下から頭をぶつけずに床を通過し、通過したあとは床として着地することが出来ます。
One Way
の設定がされている床はTileSet
のペイントからも視覚的に確認することが出来ます。
これだけですり抜け床の完成です。
4. すり抜け床を降りれるようにする
次にOne Way
の設定がされている床を下キーを押しながらジャンプボタンを押すことで、降りれるようにします。
player.gsを下記のように修正します。
修正前のコード
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
修正後のコード
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
if Input.is_action_pressed("ui_down"):
position.y = int(position.y + 1)
else:
velocity.y = JUMP_VELOCITY
ジャンプ判定の処理の中で、下キーが押されているかを判定し、押されていない場合は既存のジャンプ処理をするようにして、下キーが押されている場合は、positionのy軸を1px分下げるようにします。
そうすることで、当たり判定の位置をOne Way
が設定された床の境界より下にずらす事で、落下するようにします。
intで丸め込んでいる理由は、起点となる位置の状態によっては、小数点以下の値によっては、境界値よりギリギリ上の位置になってしまうため、確実に境界値より下になるように小数点以下を切り捨てています。
これで、One Way
が設定されている床を降りることも出来るようになりました。
まとめ
今回の記事ではGodotを使って OneWayプラットフォーム(すり抜け床)を説明しました。この記事を参考にして、ぜひ自分だけのプラットフォームゲームを作成してみてください。
Discussion