お前らRPGツクールでゲーム作れって LAWルート

1名前は開発中のものです。
垢版 |
2005/12/09(金) 12:23:48ID:vkuxb/v8
秩序と法の支配する正しい世界へ
2009/08/09(日) 19:25:23ID:Q40t2ezq
たとえば、3つのコモンイベントcommon0,common1,common2を
それぞれ定期的処理で回すときは、次のように組む。

var stopID=0;

funcion common0(){
if(stopID!=0){return;}
処理;
stopID=1;
}
funcion common1(){
if(stopID!=1){return;}
処理;
stopID=2;
}
funcion common2(){
if(stopID!=2){return;}
処理;
stopID=0;
}

要するに、各コモンイベントの先頭にif(stopID!=**){return;}をつけて、
末尾にはstopID=***;をつける。
こうすると、1つの大きな定期的処理を回しているのと同じことになる。
この状態で、common0〜common2のどこでもいいから「文章の表示」を
入れてやると、この文章が出ている間は、どのコモンイベントも動かない。
つまり、ポーズ用の処理が要らない。単純に「文章の表示」をするだけでいい。
2009/08/09(日) 19:38:28ID:Q40t2ezq
ちなみに、この組み方をすると
・各コモンイベントの間で、処理の順番がズレることが無い。
・各コモンイベントそれぞれが10000ステップまで処理できる(実験済み)。
というメリットがある。
特筆すべきようなデメリットは、今のところ見つかってない。
でも何か落とし穴があるかもしれない(^o^)

次は注意点。この組み方を使うときは、コモンイベントを作る順番に注意が必要。
定期的処理のコモンイベントを複数個作ると、上から順番に処理される。
従って、たとえば次のような順番で組んではいけない。

common1
common0
common2

この順番で組むと、
・最初のフレームではcommon0だけが実行される。
・次のフレームではcommon1,common2が実行される。
という挙動になってしまい、処理が2フレームに
分散してしまう(スローモーションになる)。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況