【解決済み】【RGSS3】Game_InterpreterクラスのFiber.yieldで1フレームのウェイトが掛かる仕組みが分かりません
Posted: 2021年1月07日(木) 17:30
現在スクリプト勉強中です
Game_Interpreterクラスのwaitメソッドの様に他クラスでも指定フレームだけウェイトをかけたいと思い仕組みを解析していたのですが
どうにもInterpreterクラスはファイバーを作成して常にresumeでrunメソッドを呼び出しているのは分かったのですが
そこからFiber.yieldをするとどうも1フレームのウェイトが掛かるようで
親ファイバーはupdateメソッドなのでしょうがFiber.yieldでここに戻ってきてるとすればupdateメソッドは常に1フレームのウェイトが自動で掛かっているのでしょうか?
他クラスでこの仕様を再現しようとしてもtimesのブロックで何度Fiber.yieldをしてもウェイトは掛かりません
ブロック内に何らかの処理をいれると止まりますが画面そのものが止まってしまいます
これではsleepやGraphic.waitと同じで使えません
waitメソッドを呼び出したインスタンスだけ待機して他の制御はそのまま動くという仕組みはどう作ればいいのでしょうか
Game_Interpreterクラスのwaitメソッドの様に他クラスでも指定フレームだけウェイトをかけたいと思い仕組みを解析していたのですが
どうにもInterpreterクラスはファイバーを作成して常にresumeでrunメソッドを呼び出しているのは分かったのですが
そこからFiber.yieldをするとどうも1フレームのウェイトが掛かるようで
親ファイバーはupdateメソッドなのでしょうがFiber.yieldでここに戻ってきてるとすればupdateメソッドは常に1フレームのウェイトが自動で掛かっているのでしょうか?
他クラスでこの仕様を再現しようとしてもtimesのブロックで何度Fiber.yieldをしてもウェイトは掛かりません
ブロック内に何らかの処理をいれると止まりますが画面そのものが止まってしまいます
これではsleepやGraphic.waitと同じで使えません
waitメソッドを呼び出したインスタンスだけ待機して他の制御はそのまま動くという仕組みはどう作ればいいのでしょうか