SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Godot Engine 2Dゲーム開発入門

【Godot Engine 2Dゲーム制作 Part1】キャラクターを出して動かそう!

Godot Engine 2Dゲーム開発入門 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

迷路のスクリプトを書こう

スクリプトの作成

 続いて「Maze」ノードにスクリプトをアタッチします。

 「シーン」ドックで「Maze」ノードを右クリックして「スクリプトをアタッチ」を選択します。

 「ノードにスクリプトをアタッチする」ダイアログが表示されますので「テンプレート」にチェックを入れて、そのまま「作成」ボタンを押します。

 res://scn/maze/maze.gdと保存されたはずです。

 このmaze.gdをScriptビューで開き、次のようにスクリプトを書き換えます。

maze.gd
extends Node2D

@export var clear_scene: PackedScene

@onready var player = $Player
@onready var camera = $Camera2D


func _ready() -> void:
	pass

func _process(_delta: float) -> void:
	camera.global_position = player.global_position

 いくつか説明が必要です。1つずつ解説していきます。

スクリプトの解説

 @exportを付けると、「インスペクター」ドックに項目が追加されます。下のスクリプトでは、このあと作成する「Clear」シーン(clear_scene.tscn)をドロップ可能にします。

@export var clear_scene: PackedScene

 ここでは型ヒントを付けています。「PackedScene」というシーンの型を書いています。こうすることでシーンだけを受け入れるようにします。

 @onreadyを使い、「Player」と「Camera2D」を_readyの直前に選択しておきます。

@onready var player = $Player
@onready var camera = $Camera2D

 この2つは_process関数で毎回呼び出しますので、選択のオーバーヘッドを軽減しています。

 続いて、_process関数の説明をします。

func _process(_delta: float) -> void:
	camera.global_position = player.global_position

 _process関数の引数のdelta_deltaに変更します。こうすることで、「引数deltaが使用されていない」という警告が、Godot Engineのデバッガーに表示されなくなります。

 _process関数の処理では、プレイヤーのグローバル位置をカメラのグローバル位置に設定しています。

 こうすると、プレイヤーは画面内で移動せず、プレイヤーが移動したときはカメラが追随するようになります。

 このカメラの追随をすぐに確認したいところですが、背景がまだ何もないので確認できません。実際の確認は、次回に迷路を作成したあとになります。

 このmaze.gdに書くスクリプトは、これだけではありません。次回以降、処理を付け加えていきます。今回の記事でmaze.gdに書く処理は、ここまでです。

次のページ
クリアの演出を作ろう

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Godot Engine 2Dゲーム開発入門連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21371 2025/06/19 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング