Open11

初心者によるGodot Engine学習記

おるとろおるとろ

SteamでインストールしたGodotのプロジェクトファイルはどこに入るのだろう。
-> 何で入れるとか関係なかった。新規プロジェクトの作成時に保存場所を聞かれる

おるとろおるとろ

次はヘッドアップディスプレイ(HUD)

感じたこと

  • やっぱりスクリプトでかけるのは嬉しい
  • UE4のノードベースは慣れない...
  • signalというのが要するにイベント駆動
  • イベント同士の接続が楽なのは良い
  • 構造化させたいときはどうするのかなって思った
おるとろおるとろ

エクスポートまできた。
なかなかシンプルで使いやすいエンジンだと思った。
シーンがノードになる感じ、good

おるとろおるとろ

うーんクラスとシーンとノードの関係がわかってないかも

  • MainシーンからOthelloノードを辿れるか?
  • 黒ピースのアンカーポイントはBlackPiece側で決めたい
おるとろおるとろ

クソーこれハマったわ
https://www.deengames.com/blog/2018/instance-vs-new-in-godot.html
近いうちに記事にするか

これも。
https://godotengine.org/qa/29943/passing-arguments-to-root-node-when-instancing-a-scene

  • _initはシーンをインスタンス化するときには使えない
  • _initはクラスをnewするときだけ
  • _initを書いているとシーンをインスタンス化するときに変になる
    • 具体的にはget_treeとかget_ownerでnullが帰ってきたり、extendされたスクリプトの関数が呼べなかったりする

じゃあ初期値与えたいときはどうすんの?
-> initialize専用の関数を作ってインスタンス化直後に呼ぶ

Main.gd
const Scene = preload("res://Scene.tscn")

func some_function():
	var s = Scene.instance().initialize(args)
        add_child(s)
Scene.gd
func initialize(pos:Vector2):
	set_position(pos)
	return self # selfを返すとメソッドチェーンで書けるので良い
おるとろおるとろ

黒い駒を置けるようになった。
あとは

  • アニメーション機能
  • 黒と白を交互におけるようにする
  • ひっくり返すようにする
おるとろおるとろ
  • gif作ったので、これをアトラスシートで書き出す
  • で、animationノードの使い方を調べるか
おるとろおるとろ

AnimatedSpriteのリソースのAnimatedFramesの作り方がよくわからない