Godot Engine 入門 パート4
パート3 からの続きです
玉転がし
スター作成
最終章です
プレイヤーシーンを作ったときと同様に新規シーンを作成し、CollisionShapeの、ShapeにBoxShapeを子ノードにCSGBoxを追加します
※画像ではルートノードがRigidBodyになっていますが、Areaにしておいてください
もし間違えた場合は、右クリックで「Change Type」をクリックしてノード型を変更できます
ColisionShapeのTransformを変更します
※画像ではScaleが0.1になっていますが、やってみたら小さすぎたので全て0.2にしておいてください
次はマテリアルです
MaterialフォルダにSpacialMaterialを「Star.tres」として新規作成します
星なので黄色にします
以前と同様にドラッグアンドドロップで適用します
ルートノードの名前を「Star」に変更します
プレイヤーシーンと同様にシーンを保存してください
名前は「Star.tscn」にしました
メインシーンに配置
星は8つ配置する予定です
壁と同様に星はひとまとめにしたいので「Stars」と名付けたPosition3Dの子ノードとして追加します
Translateを変更します
複製してそれぞれ配置します
半径 5 の円周上に均等に配置、 45° の位置は 5 ÷ √2 ≒ 3.54 を参考にしながら、よしなに
試運転
ここで一旦実行してみましょう
玉を動かして星と重なったとき、ぶつからず、すり抜けることを確認します
画像のアップロード制限になってもうた
プレイヤーシーンと同様にStarにもスクリプトをアタッチします
スクリプトは以下
星を自転させて、プレイヤーと接触したら消えるようにするスクリプトです
extends Area
func star_rotate(speed):
rotate(Vector3(0, 1, 0), speed)
func gotten(body):
if body.name == "Player":
queue_free()
func _ready():
pass
func _process(delta):
star_rotate(delta)
func _on_Star_body_entered(body):
gotten(body)
_on_Star_body_entered
は「シグナル」と呼ばれる機能によって発火するイベントです
インスペクタの上にある「ノード」タブをクリックしてbody_enteredシグナルをStar (ルートノード) と接続します
完成!
実行してみましょう
玉を動かして星にぶつけると星が消えるようになっているはずです
すべて星を取ったら終了画面を出してみたり、Labelでスコアを表示するようにしてみたり、BGMをつけてみたり…
と、もっとゲームらしくしてみるのもおもしろいかもしれません
これをきっかけにGodotでなにか作ってみたくなっていただければうれしいです
大量のスクショを撮った甲斐があります
Author And Source
この問題について(Godot Engine 入門 パート4), 我々は、より多くの情報をここで見つけました https://qiita.com/tomon9086/items/f8b9d8dce0788a475000著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .