ブロック崩し応用編part③
・global_positionはノードが配置された絶対的な位置を表す。
・だからcameraで使うっぽい
・global_positionはシーン実行中も現在のノード位置を表すからそこにパドルの半分の値half_paddle_widthを引いて左端のxの値より小さくならないように制限をかけている。
・左に行けば行くほどxの値が小さくなるから…
分かりづらいが、仮にcamera_start_xが-500,half_paddle_widthが50だったとしよう。
global_positionから50を引いて-500より小さくなった場合のif文だ。
その場合camera_start_xの-500と50の値を足した-450をglobal_position.xに代入しているからパドルの幅込み込みで画面外に出ないようになったのだ。
・こういう座標系は数字を想定すると理解が早まる
【ボールの作成】
・randomize()関数は乱数生成器の初期化
・プロジェクトが実行されるたびに乱数列が初期化される
・ブラックボックスをリセットする様な役割だなぁ
・normalized()は斜め移動したときに速度が出すぎないように
・xとyの両方の速度情報で倍々的に斜め移動が早くなるのでその制御
・パドルにボール情報を渡したいそこで
@onready var ball = $"../Ball" as Ball
$"../"の表記は初めて見たが参照ディレクトリの指定である
・ディレクトリ指定だからBallシーンで作った内容がダイレクトで使用できるというメリット
・GPT曰く
「../Ball を使うことで、複数のシーン間で共通のノードやリソースを効果的に再利用することができます。」
・パドルが動いたときにボールが動く処理を追記
・パドルが0に等しくないときかつ,ボールが動いていないとき(is_ball_startedはfalseなので)
という処理が今までの伏線回収みたいできもちいい
・start_ball()関数はBallのスクリプトでさっきrandomize()の処理のこと
Discussion