Flash(フラッシュ) Lite1.1 携帯Flashゲームで複数ステージをランダム順にプレイする









Flash liteの携帯ゲーム、
複数ステージをランダム順にプレイできるゲームたくさん作成しています。

例えば、F9で制作いたしました講談社コミゲータウンの「悪魔氏」


携帯Flashゲーム「悪魔氏」
1クリックのタイミングで、
「悪魔氏」からの障害をすばやくよける携帯Flash(フラッシュ)ゲームですが、
全10ステージあります。

(悪魔氏の考案した拷問器具をよけきれないと、、血をみます。。)



プレイ開始するたびにステージの順番を変えて、
いきなりちょっと難しいステージから始まったりするなど、変化を入れて楽しみの幅を増やしています。

(例えば全10ステージ 5⇒1⇒7⇒6⇒2⇒10⇒8⇒3⇒9⇒4 等 毎回順番が変わります)


でも、Flash lite1.1では、
基本配列の機能がありませんので、1からつくるとなかなか難しいのです。

※Flash lite1.1の機能は、Flashのバージョン4が基本になります

四苦八苦しながら、成功した方法を以下に書いてみましたので、そのままコピペなどしてお使いください。


********************
stMax = 10; //①
//ランダム数の最大数の設定

for (i=1; i<=stMax; i++) {
//ステージパラメータの初期設定
eval("st" add i) = i; //②

//ランダムパラメータの初期設定
eval("rnd" add i) = i; //③

//ランダムの設定
j = random(i)+1;
t = eval("rnd" add i);
eval("rnd" add i) = eval("rnd" add j);
eval("rnd" add j) = t;
}


//ステージパラメータにランダムパラメータを代入 ④
for (i=1; i<=stMax; i++) {
eval("st" add i) = eval("rnd" add i);
trace("st" add i add "=" add eval("st" add i));
}
********************

①の発生させる数をかえると、最大数が可変できます。
※②・と③の[st]/[rnd]のパラメータ名は任意で変えてください

④の結果をtraceでみると、
[st1~st10]のパラメータに、ランダムの数値が代入されています。

(trace例)
st1=2
st2=1
st3=5
st4=7
st5=3
st6=6
st7=9
st8=8
st9=10
st10=4


現在のプレイ数のカウントをするパラメータを用意して、
クリアするたびに加算⇒ステージをラベルに飛ばせば、うまく機能すると思います。

 
****************************************
■ステージプレイ数の値:stCnt=1
■ラベル名:stage1~stage10
****************************************
gotoAndPlay(stage add eval("st" add stCnt))

こうすると、
eval("st" add stCnt)は”2”になりますので、「stage2」ラベルからゲームが開始されます。
 
後は1ゲーム終了時に、「stCnt」に数値を1足して、再度goto~させれば、st2に入っている値のラベル(ステージ)に
飛ばせます。
****************************************

一度ものにしてしまうと、ゲームを問わず、
いろいろ使えてしまう大変便利なFlash lite1.1 ActionScriptです。

Flash lite1.1のバージョンでランダムなんだけど、
同じ数値・画面を出したくないなといったとき活用してください。




2009.07