スーパープロセッサ
〜 Tonyu System 改良プログラム 〜
オブジェクトの処理量を増やす方法4
← メインページ
← 点滅現象について
目次
- オブジェクトの処理量を増やす方法
- オブジェクトの処理量を増やす方法2
- オブジェクトの処理量を増やす方法3
- オブジェクトの処理量を増やす方法4
1つのクラスで分散処理
分散処理をするために、クラスを増やしたくない場合もあるでしょう。
その場合は、次のようにするとクラスを増やさないで分散処理ができます。
(オブジェクトは2つ作られます)
/* MainChar.tonyu */
extends SpriteChar;
if (mode == null) { // メインの処理
obj = new MainChar(); // オブジェクトを生成
obj.mode = 1; // 分散用の処理をするように設定
proc = new classes.lang.Process(obj, "", 1); // プロセスを生成
while (1) {
$MainChar_i = 0; // カウントリセット
for (i=0; i<40; i++) {
proc.exec(); // 100回ずつ実行
}
x+=3;
update();
}
} else if (mode == 1) { // 分散させる処理
while (1) {
for (j=0; j<100; j++) {
drawSprite($MainChar_i%100, trunc($MainChar_i/100), 0);
$MainChar_i ++;
}
update();
}
}
前ページの分散処理を、1つのクラスにまとめました。
mode変数は、「メインの処理」か「分散させる処理」かの、どちらを実行させるか判断するための変数です。
modeは値を代入していないnullの状態なので、メインの処理へと移ります。
メインの処理で、もう1つMainCharを作りmodeに1を代入して実行しているので、
もう1つのMainCharでは、分散させる処理をしています。
(コンストラクターを使えば、自動的にmodeに値を代入することもできるでしょう)
以上で説明は終わりです。
今回このライブラリで使ったメソッドが、Tonyuヘルプにも書いていないということで、
このような説明を加えました。
このライブラリを使えば、殆どの場合点滅処理を解決できるのですが、
これまでの説明により、さらなる問題点も解決できるはずです。
説明書の部分は最初の1ページだけでしたが、
ここまで全てを読んだ方は、本当にお疲れ様です。
← オブジェクトの処理量を増やす方法3
← 点滅現象について
← メインページ