Zufall-Bilder auf Zufall-Positionen

flashsi

Erfahrenes Mitglied
Liebe Leute,

vielleicht kann mir jemand bei einer etwas kniffligen Aufgabe behilflich sein.

Ich habe 20 kleine Bilder (Blümchen). Die sollen per Zufall in einem bestimmten Bereich nacheinander auf zufällige Positionen gebracht werden, bis der vordefinierte Bereich komplett zu ist.

Wie gehe ich da am besten vor?

Ich weiss nicht genau, wie ich da anfangen soll. Irgendwas mir duplicateMovieClip, random (für die x und y Positionen), random für die Bilder.

Hm. Über Hilfe wäre ich sehr dankbar.

Grüsse
 
ich würde die Bileder zB so benennen, das sie von 0 - 19 gehen. Ebenfalls die Verlinkung. Dann nimmst du eine while Schleife die einen beliebigen MovieClip läd eben eine zufälllige Zahl wischen 0 und 19. Diesem Movielclip gibst du dann noch _x und _y Eigenschaft welche du in dem bestimmten Bereich definierst.
Nun mit dem überprüfen ob alles bedeckt ist, wird schwer werden, vor allem wenn es Bilder und keine Vektorgrafiken sind.
 
Hallo priol,

ich müsste doch schnell was fragen. Ich scheitere immer wieder am gleichen Problem:

this.attchMovie("a","a1", 10);

Das "a1" würde ich gerne durch eine Variable ersetzen, wobei das a bleibt und die Zahl sich verändert. Wie schreib ich das genau?


var i = 1;
this.attchMovie("a","a"+i, 10);
var neu = "a"+i;

neu._x = 100;
neu._y = 100;


das geht nicht. obwohl er bei trace(neu) das richtige ausgibt. (a1)
 
Ich denke dein Problem ist es diesen MovieClip anzusteuern.
Dies kannst du in deinem Fall so machen, indem du deine Variable in Klammern setzt.

Code:
var neu = this["a" + i];

Oder du machst es so, dass du gleich beim attachen den Link zu dem MovieClip speicherst. Das wird oft in Arrays gemacht.

Code:
var blumen= [];
var i = 0;

blumen[i] = this.attchMovie("a","a"+i, i);

blumen[i]._x = 100;
blumen[i]._y = 100;

So etwas ist dann einfacher zu realsieren da du den Code in eine while-Schleife setzten kannst und dann noch ein i++; setzt damit i auch hochzählt.
 
Hallo,

ich habs jetzt in verschiedenen Varianten ausprobiert und es funktioniert leider nicht.
Hm. Vielleicht kannst Du es nochmal kurz ansehen.

Grüsse
 
Entschuldige. Hat natürlich geklappt.Und das ganze haut nun hin.
Gibt es eine Funktion mit der man das Seitenverhältnis beibehält. Also, damit sich die Bilder nicht verzerren. Wenn ich width verändere, dann hight genau um das richtige Mass?
 
Ja so etwas gibt es. Dies sind die Eigenschaften _xscale und _yscale. Am besten nimmst du _width und verbreiterst diese bzw verkleinerst sie. Danach setzt du dann _xscale und _yscale gleich

So in etwa:

Code:
this.mc._width = 200;
this.mc._yscale = this.mc._xscale;
 
Hallo pirol,

habs mir nun anders gebastelt. Rechne immer das Verhältnis aus. Funktioniert gut. Nun wirds aber interessant. Für mich jedenfalls.
Die Blumen verteilen sich wunderbar aufs ganze Bild. Jetzt möchte ich aber einen Bestimmten Bereich aussparen. Und dachte mir, das würde ganz gut über die Zufallszahlen gehen. Kann man die besser auslesen? Also, ich habe schon den Bereich, von z.B. 0 - 800, aber geht das auch von 0 - 300 und 500 - 800? Also in einen bestimmten Bereich im Bereich auslesen?
Verständlich?

Es geht auch über eine if-Abfrage (if (x < 300 || x > 800 && y < 300 || y > 800)). Geht aber nicht so richtig genau. Ausserdem dauert alles viel länger, weil er immer auf die richtigen Zahlen warten muss.
 
Dort gibt es eine recht einfach Möglichkeit. Ich habe dir hier mal schnell eine Funktion gemacht die einen Wert zwischen pBegin und pEnd ausgibt.

Code:
function getZufallZahl(pBegin:Number, pEnd:Number):Number {
	return (Math.round(Math.random()*pEnd+pBegin))
}
var zufallZahl:Number = getZufallZahl(20, 100);
 

Neue Beiträge

Zurück