2012-03-30 54 views
0

我正在做一個flash遊戲練習,我有舞臺設置,所以有9個盒子。當遊戲開始時,其中一個框被隨機化爲底部開始的那個框,如果你選擇框下面的星,你就贏了。我如何隨機動作腳本封面下的圖片3.0?

隨機化的代碼是

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

我不知道什麼是如何使之星分配給我的,按鈕由9盒一個附加此代碼。我怎樣才能隱藏箱子下方的星星作爲封面。 感謝您的時間

回答

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讓它成爲一個整數或者你最終可能會得到一個浮點數。