adcomm group

モバイルゲームを作成するにあたり、7つのパネルをかぶらずランダムに表示させる
方法を考えねばならなかったのだけれども、どうやらActionScript1には配列の概念が
ないらしく、ランダム関数はあるもののランダムに一つずつ表示させる方法が少々困難
になる。

ここで一つその方法を紹介すると


/:number1 = 1;
/:number2 = 2;
/:number3 = 3;
/:number4 = 4;

/:random1 = random(4)+1;
/:random2 = random(4)+1;
/:w = eval("/:number" add /:random1);
set("/:number" add /:random1, eval("/:number" add /:random2));
set("/:number" add /:random2, /:w);
for (i=1; i<=4; i++)
{
   /:test = eval("/:number" add i);
   trace("/:number" add i add " = " add /:test);
}

この式のとおり疑似配列を用いることでランダムな4つの数値を一つずつ取り出す事が可能になる。
しかしこの式よりも多い配列、15以上のものを瞬時に出すとなるとモバイルの計算の悪さ
なのか、この式が無理矢理すぎるのか正確なランダム数値というよりかは多少似たり寄ったり
になってしまう。

そこでもう一つ疑似配列を使ってあげ、2回ほどこの作業を繰り返せばりっぱな数値が取り出せるはずです。

こんな感じで。


/:tsetNumber1 = 1;
/:testNumber2 = 2;
/:testNumber3 = 3;
/:testNumber4 = 4;

/:random1 = random(4)+1;
/:random2 = random(4)+1;
/:w = eval("/:testNumber" add /:random1);
set("/:testNumber" add /:random1, eval("/:testNumber" add /:random2));
set("/:testNumber" add /:random2, /:w);
for (i=1; i<=4; i++)
{
   /:test1 = eval("/:testNumber" add i);
      trace("/:testNumber" add i add " = " add /:test1);
}

/:number1 = testNumber1;
/:number2 = testNumber2;
/:number3 = testNumber3;
/:number4 = testNumber4;

/:random3 = random(4)+1;
/:random4 = random(4)+1;
/:z = eval("/:number" add /:random3);
set("/:number" add /:random3, eval("/:number" add /:random4));
set("/:number" add /:random4, /:z);
for (i=1; i<=4; i++)
{
   /:test2 = eval("/:number" add i);
   trace("/:number" add i add " = " add /:test2);
}

ほかにもスマートなランダムに配列を作成する方法がありそうです。いや、なさそうです。
もしありましたら教えてくださいませ。

Categories: lite1.1, モバイル — @ 2:47 pm

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

Company Information

CyberMedia k.k.
Tech Hiroo Bldg 1F
Hiroo 1-10-5
Shibuya-ku, Tokyo
150-0012
tel +81(0)3-5423-5333
fax +81(0)3-5423-6654
email CyberMedia

cyber bloggers