Creating the player scene

With the project settings in place, we can start working on the player-controlled character.

最初のシーンでは、 Player オブジェクトを定義します。Player シーンを独立して作成する利点の 1 つは、たとえゲームの他の部分を作成する前であっても、個別にテストができることです。

ノード構成

はじめに、プレイヤーオブジェクトのルートノードを選択する必要があります。原則として、シーンのルートノードはオブジェクトに望まれる機能 (オブジェクトが何 である か) を反映する必要があります。「その他のノード」のボタンをクリックして、シーンに Area2D <class_Area2D>` ノードを加えます。

../../_images/add_node.png

Godotは、シーンツリーのノードの横に警告アイコンを表示します。現時点では無視して構いません。後で対処します。

Area2D を使用すると、プレイヤーに重なり合ったり、プレイヤーに衝突したりするオブジェクトを検出できます。ノードの名前をダブルクリックして、その名前を Player に変更します。シーンのルートノードを決めたので、これにノードを追加して機能を追加できます。

Player ノードに子を追加する前に、子をクリックして誤って移動したりサイズを変更したりしないようにします。ノードを選択し、ロックの右側にあるアイコンをクリックします。ツールチップには「オブジェクトの子を選択不可にする。」と書いてあります

../../_images/lock_children.png

シーンを保存します。 [シーン]-> [シーンを保存]をクリックするか、Windows/Linuxでは Ctrl + S を押し、macOSでは Cmd + S を押します。

注釈

このプロジェクトでは、Godotの命名規則に従います。

  • GDScript: クラス(ノード)はPascalCaseを使用し、変数と関数はsnake_caseを使用し、定数はALL_CAPSを使用します(GDScriptスタイルガイドを参照)。

  • C#: Classes, export variables and methods use PascalCase, private fields use _camelCase, local variables and parameters use camelCase (See C#スタイルガイド). Be careful to type the method names precisely when connecting signals.

スプライトアニメーション

Click on the Player node and add an AnimatedSprite node as a child. The AnimatedSprite will handle the appearance and animations for our player. Notice that there is a warning symbol next to the node. An AnimatedSprite requires a SpriteFrames resource, which is a list of the animations it can display. To create one, find the Frames property in the Inspector and click "[empty]" -> "New SpriteFrames". Click again to open the "SpriteFrames" panel:

../../_images/spriteframes_panel.png

左側にはアニメーションの一覧があります。「default」をクリックし、「walk」に名前を変更します。次に、「新規アニメーション」ボタンをクリックして、「up」という名前の 2 番目のアニメーションを作成します。 playerGrey_up[1/2]playerGrey_walk[1/2] という名前の各アニメーションの 2 つの画像をパネルの 「アニメーション フレーム」側にドラッグします:

../../_images/spriteframes_panel2.png

The player images are a bit too large for the game window, so we need to scale them down. Click on the AnimatedSprite node and set the Scale property to (0.5, 0.5). You can find it in the Inspector under the Node2D heading.

../../_images/player_scale.png

Finally, add a CollisionShape2D as a child of Player. This will determine the player's "hitbox", or the bounds of its collision area. For this character, a CapsuleShape2D node gives the best fit, so next to "Shape" in the Inspector, click "[empty]"" -> "New CapsuleShape2D". Using the two size handles, resize the shape to cover the sprite:

../../_images/player_coll_shape1.png

完了すると、 Player シーンは次のようになります:

../../_images/player_scene_nodes.png

これらの変更後は、必ずシーンを再度保存してください。

In the next part, we'll add a script to the player node to move and animate it. Then, we'll set up collision detection to know when the player got hit by something.