2012-03-30 8 views
0

Ich mache ein Flash-Spiel für die Praxis und ich habe meine Bühne eingerichtet, so gibt es 9 Boxen. Wenn das Spiel gestartet wird, wird eines der Felder als das mit dem Start darunter ausgewählt. Wenn Sie das Feld mit dem darunter liegenden Stern auswählen, gewinnen Sie.Wie kann ich ein Bild unter einem Cover in ActionScript 3.0 randomisieren?

Die Randomisierung Code ist

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

Was ich nicht weiß, ist, wie Sie diesen Code zu befestigen, so dass sie den Stern zu einem meiner 9-Boxen als Schaltflächen gemacht zuordnet. Wie kann ich den Stern unter der Box als Abdeckung verstecken? Danke für deine Zeit

Antwort

1

Ich stelle mir eines dieser Spiele vor, wo du aber einen Ball unter einem von drei Bechern hast und die Becher vertausche, dann rate mal, welchen man den Ball hat.

Die einfachste Möglichkeit, ein Objekt unter einem anderen zu verstecken, besteht darin, es einfach vor dem Objekt, das es abdeckt, zur Bühne hinzuzufügen. Fügen Sie also Ihren Stern zur Bühne hinzu und fügen Sie alle Ihre Boxen hinzu. Aber da du kein unsichtbares Objekt auf der Bühne haben musst, empfehle ich, den Stern nicht auf der Bühne zu platzieren, bis er aufgedeckt wird, und ihn zu entfernen, wenn er wieder ausgeblendet wird.

Sie können Ebenen erstellen, um sicherzustellen, dass Objekte immer über/unter dem liegen, was sie über-/unterschreiten müssen. Erstellen Sie Sprite-Objekte und nennen Sie sie Ebenen. Fügen Sie sie in der Reihenfolge von unten nach oben hinzu. Fügen Sie diesen Ebenen-Sprites andere Sprites hinzu, um ihre Anzeigereihenfolge zu steuern.

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 

Das betrifft die Abdeckung des Sterns mit den Boxen.

Sie können Ihre Boxen in ein Array setzen. Sie wollen eine Zahl zwischen 0 und 8, dann verwenden Sie diese als Index im Array, um die gewünschte Box zu erhalten.

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]; 

Anschließend können Sie den Stern auf der gleichen Position wie die Schachtel bewegen ...

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

Dies ist eine ziemlich praktische Funktion können Sie:

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

Beispiel (any Nummer zwischen 0 - 9):

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

Rem mber, um es zu einem int zu machen, oder du kannst mit einem float enden.