【CoR】ユーザー定義関数内での変数について(CoR質問掲示板)
投稿:
クソザコ
投稿:2017/03/06 17:04:06(最新:2025/07/25 23:32:25)
scene 'start' do
a = "ほげ"
b = "ふが"
preload do
end
create do
end
update do
hoge
end
render do
end
end
start_scene 'start'
def hoge()
b = a
end
この様なコードでテストプレーをすると
1: start.rb:22: undefined method 'a' for #<RmakeScene:0x5eb168> (NoMethodError) start.rb:22:in Object.hoge start.rb:12:in Object#instance_eval [CoR internal] engine/scene.rb:129:in RmakeScene.call [CoR internal] engine/scene.rb:126
とエラーが出ますが、(恐らく、関数hoge内で変数aが見えていないという事だと思いますが…)
ユーザー定義関数内でscene do - end内で定義した変数の取得方法はありますか?
コメントする
コメントするには、ログインする必要があります。
コメント一覧
メニュー
やりたいことによって、良い解決方法が変わりそうな話ではありますが・・・
関数の引数で渡すのが良さそうに思います。以下のように書けるかと思います。
scene 'start' do a = "ほげ" b = "ふが" preload do end create do # 「ほげ, ふが」と表示される debug_log "#{a}, #{b}" # 関数呼び出し a, b = hoge(a, b) # 「ほげ, ほげ」と表示される debug_log "#{a}, #{b}" end update do end render do end end start_scene 'start' def hoge(arg_a, arg_b) arg_b = arg_a [arg_a, arg_b] end質問の内容が少し説明不足でした、すみません…
自分がやりたい事は「ユーザー定義関数内でscene do - end内で定義した変数の内容を直接書き換える事」ですね。
(上の自分のコードで言うと、関数hogeを実行するだけでbの内容がaの内容に書き換わるようにしたい)
変数の取得方法はわかりましたが、これのやり方がわからないです…