[過去ログ] 【軽量】godot engine - part2 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
134
(1): 名前は開発中のものです。 [sage] 2022/05/18(水) 00:11:45.36 ID:N0NJeNzP(1/4) AAS
>>128
128(2): 名前は開発中のものです。 [sage] 2022/05/16(月) 13:12:01.81 ID:JWEHB4HA(1/2) AAS
外部リンク:www.peanuts-code.com
このチュートリアルの「ブロックの色を編集しやすくする」のあたりについてなんだけど

func set_color(color):
  brick_color = color
  if is_inside_tree():
    get_node("Sprite").set_modulate(color)

このセッターの引数の(color)は何の名前でもいいわけだけど、これは宣言もしてない空の変数ですよね?
なぜエラーにならないのか、これが逆で color = brick_color だと色の変更が反映されなくなって駄目なのはどういうことかと混乱してます。

一応godotのセッターゲッターについてググったら、エディタ上でプロパティの変更を反映させる場合は
同様の書き方になる事は分かりましたが納得できません。
setgetと突然出てくる謎の変数についてヒントがありましたらご教示ください。
tool scriptだけどLevel1実行時にも動いてるのでデバッガで中身見れる

画像リンク

ブレークポイント仕掛けてデバッグ実行すれば変数ウォッチで中身が見れる
set_color(brick_color)で待機してるからローカル変数colorには
呼び出された時にはメンバ変数brick_colorの値が入る

そしてブレークポイントはbrick_color=colorに掛かってるから式の代入前に止まる
その時メンバ変数brick_colorには白が入っていて、ローカル変数colorには色がついてるのが見える
その後ステップ実行で次行に移ると色は式の通りに代入が行われる

どうやって動いてるのかデバッガ使わない奴には一生分からないと思う
何のために用意されたツールなのかよく考えて活用しないと宝の持ち腐れじゃないの?
135: 名前は開発中のものです。 [sage] 2022/05/18(水) 00:18:04.75 ID:N0NJeNzP(2/4) AAS
呼び出された時にはメンバ変数brick_colorの値が入る ×
呼び出された時にはメンバ変数brick_colorでコールバックがフックされた時の値が入る 〇
136: 名前は開発中のものです。 [sage] 2022/05/18(水) 00:29:57.29 ID:N0NJeNzP(3/4) AAS
呼び出してるのは別のクラスだから
外部から呼び出されて値を引数に取って渡されているから
呼ばれた時にはまだ値をもらってないと言った方がいいのかな?
適切に理解してるか怪しいが、えらく説明がしづらい
138: 名前は開発中のものです。 [sage] 2022/05/18(水) 23:51:12.41 ID:N0NJeNzP(4/4) AAS
頑張ってな

疑問に思っていたこともデバッグ実行すれば一瞬で氷解する筈なのでお試しあれ

func _process(_delta):
set_color(brick_color)

とか_ready()の下に付け足して常時呼び出すようにしておいて
デバッガーウインドウのcolorを見ながらF11押してれば分かるよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s