PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ActionScript: Objekt per Zufall platzieren


salat sniper
2008-12-09, 17:44:02
Guten Tag,
vorne weg möchte ich erstmal sagen, dass ich nicht besonders begabt bin im Programmieren. Ich habe hier versucht ein kleines Spiel zu programmieren. Dabei soll per Zufallsprinzip ein Objekt von oben herunterfallen. Das herunterfallen habe ich bereits hinbekommen, ich weiß jedoch nicht, wie ich es hinbekomme, dass er sich für die x-Koordinate eine Zufallszahl aussucht.

this.attachMovie("bier", "bier1", this.getNextHighestDepth());
bier1._x = ??;
bier1._y = 0;
bier1.onEnterFrame = function() {
bier1._y +=25
}

Ich nehme an, ich müsste irgendwie mit Math.random eine Funktion basteln. Es wäre nett, wenn mir das mal einer machen könnte und mir auch ein bisschen erklären kann. Aus der Flash-Hilfe werde ich nicht so ganz schlau.

Berni
2008-12-09, 18:50:56
Mit Math.random() bekommst du eine Zahl zwischen 0 und 1 (beides inklusive). Jetzt musst du halt sagen, was die minimale und maximale x-Koordinate sein soll und das Ganze entsprechend hinrechnen. Wenn x z.B. zwischen 0 und 50 sein soll, sollte ein "Math.random() * 50.0" genau das sein was du brauchst. Wenn x z.B. zwischen 10 und 50 sein soll, bräuchtest du ein "10 + (Math.random() * 40.0)". Möglicherweise musst du danach noch zu einem Integer runden (wenn deine bier1._x ein Integer ist) indem du den ganzen Ausdruck in ein Math.round() reinschreibst.

salat sniper
2008-12-09, 21:42:33
Mit Math.random() bekommst du eine Zahl zwischen 0 und 1 (beides inklusive). Jetzt musst du halt sagen, was die minimale und maximale x-Koordinate sein soll und das Ganze entsprechend hinrechnen. Wenn x z.B. zwischen 0 und 50 sein soll, sollte ein "Math.random() * 50.0" genau das sein was du brauchst. Wenn x z.B. zwischen 10 und 50 sein soll, bräuchtest du ein "10 + (Math.random() * 40.0)". Möglicherweise musst du danach noch zu einem Integer runden (wenn deine bier1._x ein Integer ist) indem du den ganzen Ausdruck in ein Math.round() reinschreibst.

Ok. Das habe ich jetzt. Noch eine Idee, wie ich es hinkriege, dass er das Objekt alle 2 sec erneut zufällig platziert und runterfallen lässt?

Berni
2008-12-09, 22:13:02
Das sollte mit der setInterval()-Funktion gehen: http://www.oman3d.com/tutorials/flash/setinterval/

Gast
2008-12-09, 23:08:48
Das sollte mit der setInterval()-Funktion gehen: http://www.oman3d.com/tutorials/flash/setinterval/
Ich habe es versucht so zu machen, mit meinem nichtmal annäherndem Halbwissen ist auch das nicht einfach. Irgendwas ist bei mir noch verdreht. Er positioniert das Objekt, lässt es 2 sekunden stehen und dann fallen. Ein erneutes fallenlassen bleibt aus.


this.attachMovie("bier", "bier1", this.getNextHighestDepth());
bier1._x = Math.random()*765;
bier1._y = 0;
function fall() {
bier1.onEnterFrame = function() {
bier1._y += 25;
};
}
setInterval(fall, 2000);