走り書きなんですけど、さらっと書いておきます。
その内丁寧に解説かければと思います。
@ノードの作成について
〇Node2d>area2Dで作ること
・Node2d配下だと、応用がききやすい
・area2D配下だと当たり判定が使える
〇当たり判定にはCollisionShape2Dを仕込んでおくこと
おすすめノード構成
・Node2D
┗Area2D
┗AnimationPlayer
sprite
CollisionShape2D
上記構成で、CollisionShape2DのShapeを設定しておけば、Area2Dが検知できるようになる
↓の「@判定をつける」を参照
@判定をつける
親ノード(Area2D)にSignalsとしてarea_enteredを設定する
・設定するときに発火する相棒に自身を選択すると、Area2Dに接触するすべて(「.」)で発火するようになる
下記のような関数が作成されればオッケー
※〇〇on□□_area_entered(area): が正しいけど、すべて接触する関数は前半の〇〇が省略される
モノに触れた瞬間
func _on_Player_area_entered(area):
print(name+”が”+area.name+”に触れました”)
###もしも敵の攻撃判定だったら
if area.TYPE=='E_ATTACK_AREA':
print('痛い!')
life-=20;
$Animation.set_current_animation("damage")#アニメーションの再生
pass # replace with function body
〇アニメーションを作る
・AnimationPlayerを使う
・タイムラインを設定して使う
・キーを設定し、spriteを選択、Pathにあるカギマークの押下でキーフレームの設定ができる
・キーフレームは画像パスを変えることによりアニメーションを作れる
・キーフレームは座標にも設定できるため、位置の変更も可能
・また、プログラム関数の引数もキーフレームに設定できるので、間接的にプログラム操作もできる
・もちろんグローバル変数にも関与可能
〇単色の静止画を使う
・ColorRectがおすすめ
・Shader>Material にて画像のコード作成ができる
〇画面の切り替えをする
・下記関数をコピペがおすすめ
#zキーが押されたらゲーム画面へ移動
if Input.is_action_pressed("ui_accept"):
get_tree().change_scene("res://戦闘画面セット.tscn")
〇日本語フォントを使う
・下記流れでつかんで
①nodeからLabelを追加
②LabelからControl > castomFontsを選択
③New DynamycFontsを選択
④New DynamycFontsのプロパティから文字サイズを設定
⑤ドラッグアンドドロップでフォントを設定
〇タイムラインでプログラムを使う
新しいトラック > addCallFuncTrackを使う
・参照元は自身を選択する
・呼び出し用の関数を作っておくと便利
以下例
func jump_motion(val):
height = val;
・Nameに関数名、Arg countに引数の数、Argsに引数を入れる
上記の例に沿うと
Name : jump_motion
Arg count : 1
Args : int 設定したい数値