1️⃣

Godotでプラットフォームゲーム基礎作成 その3 OneWayプラットフォーム(すり抜け床)

に公開

1. はじめに

Godotを使ってプラットフォームゲームを作成するための基本的な要素と手順を紹介します。
初心者を対象に、ゲーム開発の基本を学びながら、自分で簡単なプラットフォームゲームを作成できるようになります。YouTubeでもこの記事の内容に沿ってゲームを作っているので、動画を見ながら取り組んでみてください。

https://youtu.be/z0x1K9lvYyo

チャンネル登録していただけると嬉しいです。

環境

今回の動画では以下のバージョンを前提にゲーム作成を行います。

  • 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