2012-03-30 8 views
0

私は練習のためのフラッシュゲームを作っています。私はステージがセットアップされているので、9個のボックスがあります。ゲームが開始されると、ボックスの1つが下に開始点を持つものとしてランダム化されます。下の星でボックスを選択すると、勝ちます。actionscript 3.0でカバーの下の画像をランダム化するにはどうすればよいですか?

ランダム化コードは、私が知らない何か

var star = 1 + Math.Round(Math.Random()*8.0)//generate a number between 1 and 9 

である、それはボタンとして作られた私の9つのボックスのいずれかにスターを割り当てるようにこのコードを接続する方法です。どのようにしてボックスの下の星をカバーとして隠すことができますか? お時間をいただきありがとうございます

答えて

1

私は3つのカップのうちの1つのボールの下にボールを置き、カップを交換してボールを持っているゲームを想像しています。

あるオブジェクトを別のオブジェクトの下に隠す最も簡単な方法は、それをカバーするオブジェクトの前にステージに追加することです。ステージにあなたの星を追加して、すべてのボックスを追加します。見えないオブジェクトを実際に舞台上に置く必要はないので、ステージが公開されるまでステージに追加しないようにして、再び隠れると削除することをおすすめします。

レイヤーを作成して、オブジェクトの上/下が常に上または下になるようにすることができます。スプライトオブジェクトを作成し、レイヤーと呼んでください。下から上へ順番に追加してください。これらのスプライトに他のスプライトを追加して、表示順序を制御します。

var layer1:Sprite = new Sprite(); // Bottom/background 
var layer2:Sprite = new Sprite(); // Top/foreground 

stage.addChild(layer1); 
stage.addChild(layer2); 


layer2.addChild(someObject1); 
layer1.addChild(someObject2); // someObject2 will be below someObject1 

これは、星をボックスで覆うことを扱っています。

ボックスを配列に配置できます。 0から8の間の数字が必要になります。それを配列のインデックスとして使用して、必要なボックスを取得します。

var whichBox:int = (int)(Math.random() * 9); 
var boxesArray:Array = new Array(); 
for (var i:int = 0; i < 9; i++) { 
    boxesArray.push(new Box()); // Or whatever your boxes are 
} 
var boxWithStar:Box = boxesArray[whichBox]; 
あなたは、そのボックスと同じ場所に星を移動することができます

...

star.x = boxWithStar.x; 
star.y = boxWithStar.y; 
1

これはかなり便利な機能を使うには、使用することができますされています

function randRange(start:Number, end:Number) : Number 
{ 
    return Math.floor(start +(Math.random() * (end - start))); 
} 

例を(任意の0〜9の数字):

var random:int = randRange(0,9); 

reme mberをintにするか、浮動小数点で終わることがあります。

関連する問題