Godot4 ビッグカツブロック崩し2 パドルを左右に動かすスクリプトの作成

※この連載の全ての記事は、タグ「ビッグカツ」の検索一覧から探すことができます。
※この連載で作ったゲームは「BigBreakOut(ゲームの作り方の記事付き) | フリーゲーム投稿サイト GodotPlayer」でプレイできます。

昔から人気の駄菓子「ビッグカツ」フリー素材画像が公開されたので、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 を使って、ビッグカツ画像を使ったブロック崩しを作成します。

「ビッグカツブロック崩し」作成の第2回は、ビッグカツのフリー素材画像が表示されているパドル(バー)を←→キーで左右に移動させる GD スクリプト作成して、パドルシーンのルートノードに割り当てて、エディタ上で実行して左右に動くかをテストします。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。

前回の記事

前回は、プロジェクトの作成ウィンドウサイズの設定、パドル(バー)のシーン作成して、ビッグカツのフリー素材画像をプロジェクトに追加してパドルの画像として割り当て、その画像に合わせた四角い当たり判定領域を設定しました。

パドルを左右に動かすスクリプトの作成

前回作成した Paddle ルートノードCharacterBody2D クラス)をシーンドックで選択してから、その右上にある+がついたアイコンの「選択したノードにしんきまたは既存のスクリプトをアタッチする。」ボタンを押します。

Godot4 ビッグカツブロック崩し パドルのシーンの作成7

作成して、そのノードに割り当てるスクリプトのファイル名・ファイルパスなどを設定して「作成」ボタンを押します。
※デフォルトの paddle.gd で作成します。

Godot4 ビッグカツブロック崩し パドルのシーンの作成8

paddle.gd が作成され、ウィンドウ中央上の Script ワークスペースに自動的に切り替わり、スクリプトが表示されました。
最初から、基本的な処理が書かれています。

CharacterBody2D クラスのスクリプトの場合は

  • 空中では自由落下
  • スペースキーまたはエンターキーが押されたらジャンプ
  • ←→キーで左右に移動
  • 上記で決めた動きを、障害物にぶつかったら止まるように物理演算を行いながら実行

といった処理が最初から書かれています

Godot4 ビッグカツブロック崩し パドルのシーンの作成9

そのスクリプトに、以下のスクリプトを上書きします。
※詳細についてはスクリプト内のコメントを参照してください。

extends CharacterBody2D
class_name Paddle
## 操作するパドル(バー)のスクリプトです。

# パドル(バー)が横に移動する際の速度です。
const SPEED = 300.0

# _physics_process は、物理的な相互作用を安定させるために、
# 可能な限り固定時間間隔(デフォルトでは毎秒60回)で呼び出されます。
# この間隔は、プロジェクト設定の Physics -> Common-> Physics Fps で変更できます。
# [param delta] は前回の _physics_process 関数が呼び出されてからの経過時間(ミリ秒)です。
func _physics_process(delta):
	# Get the input direction and handle the movement/deceleration.
	# As good practice, you should replace UI actions with custom gameplay actions.
	# ← →キーなど左右に移動する入力を取得します。
	var direction = Input.get_axis("ui_left", "ui_right")
	# 左右いずれかへの入力がある場合は、その方向に向けて SPEED の値だけ加速します。
	if direction:
		velocity.x = direction * SPEED
	# 左右どちらへの入力もない場合は、加速度を 0 にして止まります。
	# move_toward を使うことで、 veliocity.x の値を SPEED を最大値として 0 に近づけます。
	# これにより、第3引数を小さくすればするほど、少し滑ったような感じで少しずつ減速します。
	# 現状は、移動に使う加速度の SPEED と同じ値なので、入力がなければすぐに 0 になり、止まります。
	else:
		velocity.x = move_toward(velocity.x, 0, SPEED)
	
	# 衝突したら止まるように物理演算を行いながら、設定された velocity ベクトルの方向と量で移動します。
	move_and_slide()
	return

_pysics_process イベント関数についての詳細は「アイドル処理と物理処理 — Godot Engine (4.x)の日本語のドキュメント」を参照してください。

パドルのシーンの保存

シーンは Ctrl + S キーなどで保存できます。
最初に保存する際は、シーンの名前を入力して「保存」ボタンを押します。

Godot4 ビッグカツブロック崩し パドルのシーンの作成10

テスト

F6 キーで現在のシーンを実行して、矢印キー左右を押すと、パドルが移動しました。

まとめ

「ビッグカツブロック崩し」作成の第2回は、ビッグカツのフリー素材画像が表示されているパドル(バー)を←→キーで左右に移動させる GD スクリプト作成して、パドルシーンのルートノードに割り当てて、エディタ上で実行して左右に動くかをテストしました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました