こんにちは。
スクリプトに詳しい方にお聞きします。
Game_InterpreterクラスからScene_Map.prototype.[関数名] = function()
の関数を呼びたいのですが$gameMap.[関数名]();から呼ぼうとすると
undefined is not a functionになってしまいます。
Game_Interpreterクラスの下にScene_Map.prototype.[関数名] = function()
を定義しておりそれを実行したいと考えます。
Scene_Mapは$gameMapから呼ぶことはできないのでしょうか?
【解決済み】スクリプトについてお聞きします。
Re: スクリプトについてお聞きします。
こんにちは。
詳しくはありませんが、わかる範囲でお答えします。
$gameMapはGame_Mapクラスのインスタンスです。
各シーンのインスタンスはSceneManager._sceneに保持されています。
したがって、SceneManager._scene.[関数名]()とすることで、望みの動作をおこなえるかなと思います。
ですがSceneManager._sceneは「現在のシーンのインスタンス」を保持しているため、マップ以外のシーンでマップ用の関数を呼ぶとエラーが発生するか、想定していない動作をおこなうことになります。
安全面を考慮するなら、何らかの方法で型の判定をした方がよいかなと思います。
具体的な方法は僕のブログでも紹介しています。
http://ntgame.wpblog.jp/2017/09/04/post-844/
また、詳細は省略しますが、特殊な関数名を使用しているならダックタイピングも有効かなと思いました。
興味があれば調べてみてください。
詳しくはありませんが、わかる範囲でお答えします。
$gameMapはGame_Mapクラスのインスタンスです。
各シーンのインスタンスはSceneManager._sceneに保持されています。
したがって、SceneManager._scene.[関数名]()とすることで、望みの動作をおこなえるかなと思います。
ですがSceneManager._sceneは「現在のシーンのインスタンス」を保持しているため、マップ以外のシーンでマップ用の関数を呼ぶとエラーが発生するか、想定していない動作をおこなうことになります。
安全面を考慮するなら、何らかの方法で型の判定をした方がよいかなと思います。
具体的な方法は僕のブログでも紹介しています。
http://ntgame.wpblog.jp/2017/09/04/post-844/
また、詳細は省略しますが、特殊な関数名を使用しているならダックタイピングも有効かなと思いました。
興味があれば調べてみてください。
【Twitter】https://twitter.com/TsumioNtGame/
【GitHub】https://github.com/Tsumio/rmmv-plugins
有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
【GitHub】https://github.com/Tsumio/rmmv-plugins
有償の依頼も募集中。
今まで有償で制作したものは実績をご覧ください。
Re: スクリプトについてお聞きします。
ツミオ様
ありがとうございました!いままで悩んでいたことがウソのように解決しました。
聞いてよかったです!結構単純なことだとはわかっていましたがわからないと永遠と考え続けてしまって…
イベント中に当該関数を実行したいと考えていたのでマップ画面から呼び出しています。
なのでエラーとかなく問題ありませんでした。
シーン判定とか勉強になりました。紹介していただいたブログはあとでゆっくりと参照させていただきます。
ツミオ さんが書きました:$gameMapはGame_Mapクラスのインスタンスです。
各シーンのインスタンスはSceneManager._sceneに保持されています。
したがって、SceneManager._scene.[関数名]()とすることで、望みの動作をおこなえるかなと思います。
ありがとうございました!いままで悩んでいたことがウソのように解決しました。
聞いてよかったです!結構単純なことだとはわかっていましたがわからないと永遠と考え続けてしまって…
イベント中に当該関数を実行したいと考えていたのでマップ画面から呼び出しています。
なのでエラーとかなく問題ありませんでした。
シーン判定とか勉強になりました。紹介していただいたブログはあとでゆっくりと参照させていただきます。