LoginSignup
9
4

More than 3 years have passed since last update.

Godot Engine 入門 パート4

Last updated at Posted at 2019-12-04

パート3 からの続きです

玉転がし

スター作成

最終章です
プレイヤーシーンを作ったときと同様に新規シーンを作成し、CollisionShapeの、ShapeにBoxShapeを子ノードにCSGBoxを追加します
※画像ではルートノードがRigidBodyになっていますが、Areaにしておいてください

もし間違えた場合は、右クリックで「Change Type」をクリックしてノード型を変更できます

スクリーンショット 2019-10-22 23.31.32.png
ColisionShapeのTransformを変更します
※画像ではScaleが0.1になっていますが、やってみたら小さすぎたので全て0.2にしておいてください
スクリーンショット 2019-10-22 23.33.30.png
次はマテリアルです
MaterialフォルダにSpacialMaterialを「Star.tres」として新規作成します
スクリーンショット 2019-10-22 23.33.53.png
星なので黄色にします
スクリーンショット 2019-10-22 23.34.13.png
以前と同様にドラッグアンドドロップで適用します
スクリーンショット 2019-10-22 23.34.34.png
ルートノードの名前を「Star」に変更します
スクリーンショット 2019-10-22 23.34.44.png
プレイヤーシーンと同様にシーンを保存してください
名前は「Star.tscn」にしました

メインシーンに配置

星は8つ配置する予定です
壁と同様に星はひとまとめにしたいので「Stars」と名付けたPosition3Dの子ノードとして追加します
スクリーンショット 2019-10-22 23.38.10.png
Translateを変更します
スクリーンショット 2019-10-22 23.38.44.png
複製してそれぞれ配置します

半径 5 の円周上に均等に配置、 45° の位置は 5 ÷ √2 ≒ 3.54 を参考にしながら、よしなに

スクリーンショット 2019-10-22 23.40.36.png

試運転

ここで一旦実行してみましょう
玉を動かして星と重なったとき、ぶつからず、すり抜けることを確認します
スクリーンショット 2019-10-22 23.46.52.png

画像のアップロード制限になってもうた

プレイヤーシーンと同様にStarにもスクリプトをアタッチします
スクリーンショット 2019-10-22 23.47.12.png
スクリプトは以下
スクリーンショット 2019-10-22 23.47.40.png

星を自転させて、プレイヤーと接触したら消えるようにするスクリプトです

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 (ルートノード) と接続します
スクリーンショット 2019-10-22 23.48.46.png
スクリーンショット 2019-10-22 23.48.59.png

完成!

実行してみましょう
玉を動かして星にぶつけると星が消えるようになっているはずです
スクリーンショット 2019-10-22 23.50.23.png

すべて星を取ったら終了画面を出してみたり、Labelでスコアを表示するようにしてみたり、BGMをつけてみたり…
と、もっとゲームらしくしてみるのもおもしろいかもしれません

これをきっかけにGodotでなにか作ってみたくなっていただければうれしいです
大量のスクショを撮った甲斐があります

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4