- 69 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 09:01:05.68 ID:tiAvbHs0.net]
- つまり今の問題は
・スクリプトの動作が遅い(遅く感じる) ・functionとprocedureの違いが分からない の二点ってことね 一つ目の問題はループ内でifを独立させているせいで、毎回頭から最後まで全てのif条件が働いている つまり同時には一つしかヒットしないのに律儀に全部の画像を判定しようとして空振りしてので遅くなっている 対策は一つ目をifb、次以降をelseifにして最初のifbのブロック内に収める そうするとn個目の処理した後、以後のifは飛ばす構造になる(そしてwhileでまた最初から判定) ##ifとifbの違いや動作を理解しよう## 応用としては頻出するものを最初に持ってきた方がトータルではやや早い ただし結局はifbブロック内に大量にelseifでのchkimgがある時点で遅くなっていく これはそもそもゲーム構造的に同時に判定すべきでないものを全て詰め込んでいるせい 簡単に言うとタイトル画面で戦闘開始の判定をしても意味がないしクエスト画面でタイトル画面のログインボタンの判定をしても意味がないよね これも対策は出来るが長くなるのでヒントだけ ・まずはシーン(タイトル、クエストなど)を判定する為のメインループを作る ・各シーンごとの操作(画像認識)をまとめてループにする ループ内というかifbブロック内になるべく空振りさせないように構造化させるのがポイント これでも遅く感じる場合には、シーン内の画像認識をifbによる順次処理ではなく、スレッドによる並列処理にする必要がある が、まあそれはまたやってみて遅いとか、スレッドやってみて詰まったら質問してくれ 次にfunctionとprocedureだけどこれは単に>>61では適当に構造のイメージで書いたのでresult書き忘れてるだけ 余計な混乱させてしまったなら悪いけど、正直に言えばそんなことで詰まるとは思いもしなかった…マニュアルとか見てる?? で、resultが何なのかはヘルプなりGoogle先生に聞いてもらうとして、多分懸念してる動作速度はどっちでも大差ない
|

|