メイン どこでもFlash【携帯向けFlash関連】 ムービークリップをランダムで配置 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
imakara | Åê¹ÆNo.38076 投稿日時: 2008-3-18 19:10 |
新米 居住地: 投稿: 12
使用環境:
WinXP,Flash8 |
ムービークリップをランダムで配置 毎回参考にさせていただいてます。
今回Flashlite1.1で初めてFlashゲーム作りにチャレンジして いて、ここのサイトの書き込みを参考にスライドパズルゲーム を作り、一応できたのですが、 絵を書いたパネルの配置が毎回同じでは味気ないので、 毎回ランダムでパネルの配置が変わるようにしたいのですが、 いまいちやり方がわかりません・・・。 パズルは240×240でPanelは同じ大きさの16個の絵が描かれた MCでできていてそれぞれPanel1?16とインスタンス名をつけてます。 一応自分で考えて、以下のように書いてみたんですが、 r = random(16)+1; for (i=1; i<=16; i++) { if (i<>r) { setProperty("/panel" add i, _x, getProperty("/panel" add r, _x)); } if (i<>r) { setProperty("/panel" add i, _y, getProperty("/panel" add r, _y)); } } パネルの数字とランダムの数字が違う時だけ位置を入れ替える みたいな感じにしようかと思ったんですが・・・。 これだとPanel16だけランダムで配置されて他のMCは ステージから消えてしまいました・・・。 なにかヒントをいただけたらありがたいです。 よろしくお願いします。 |
ruriwo | Åê¹ÆNo.38077 投稿日時: 2008-3-18 20:27 |
新米 居住地: okinawa 投稿: 11
使用環境:
Flash Pro8/WinXP Pro SP3 au W61CA/DoCoMo P902i オンライン
|
Re: ムービークリップをランダムで配置 ん?、ざっと考えてみたんですが、
こんなのはどぉでしょう・・・。 //mainAS----------------------------- num = 16//枚数 /*---------------------------------*/ i=0;j=0;ct=0; for(i=1;i<=num;i++){ eval("a"add i) = 0; } /*---------------------------------*/ i=0;j=0;ct=0; for(i=1;i<num+1;i++){ r = random(num)+1; for(j=1;j<num+1;j++){ if(eval("a" add j) == r){ i--; break; } } if(j == num+1){ eval("a" add i ) = r; } } /*---------------------------------*/ i=0;j=0;ct=0; for(i=0;i<4;i++){ for(j=0;j<4;j++){ ct++; tmp = "panel" add ct; duplicateMovieClip("panel", tmp, eval("i") + 8 * eval("j")); tellTarget(tmp){ n=eval("../:a"add ../:ct); setProperty("", _x, (eval("../:i")* 60)); setProperty("", _y, (eval("../:j")* 60)); } } } i=0;j=0;ct=0; ↑が汚いですが; |
imakara | Åê¹ÆNo.38095 投稿日時: 2008-3-19 16:09 |
新米 居住地: 投稿: 12
使用環境:
WinXP,Flash8 |
Re: ムービークリップをランダムで配置 ありがとうございます!
とりあえずパネルがバラバラに配置されるようになりました。 ですが、やはり毎回同じ位置にMCが配置されるみたいです。 まだ初心者の自分にはMCの複製などあまり使ったこともなく、 実は書いていただいたスクリプトが、なにがどうなって こういう動きになるのかパっと見わからないのですが、 ちょっと書いていただいたものを参考に自分で調べつつ いじってみます。 ありがとうございます。 |
swimmy | Åê¹ÆNo.38106 投稿日時: 2008-3-20 9:58 |
新米 居住地: 東京 投稿: 2
使用環境:
CS3 XP Pro |
Re: ムービークリップをランダムで配置 FlashLiteは触ったことがないので、実際にソースは書けないのですが、パネルゲームのパネルはランダムに配置しちゃうとクリアできない並び方とかになったりしそうですが。。。
なので全部きちんと配置したあとに適当にゲームを行った状態を作りだせばいいのでは? for (i=0; i<100; i++) { r = random(16)+1; //指定したパネルが動けば、動かす関数を呼ぶ。 movePanel(r); } みたいなことをループの回数を調整してやってみたらどうでしょう? |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |