Mathematische Problem

Denniz

Erfahrenes Mitglied
Hi Leute,

ich beiße mir schon seit einiger Zeit die Zähne an einem Mathematischen Problem aus.
Hier im Forum hat jemand vor einiger Zeit den Link zu derbauer[de] gepostet.
Auf der Website gibt es zu beginn eine Animation in der sich einzelne blöcke nach und nach zu einem Hintergund aufbauen.

Genau das gleiche versuche ich nachzubauen.

Die Plazierung der einzelnen Pattern auf dem Bildschirm ist nicht das Problem sondern jedem Pattern einen speziellen Wert mitzugeben über dem ich dann per setInterval denn Pattern dann zu einer bestimmten Zeit einblenden kann.
Gestartet werden soll mit dem Pattern genau in der Mitte der Bildschirms, also müßte dieser zB. den indexwert 1 haben. Der indexwert müßte dann aufsteigen und zwar in einer ganz bestimmten Reihenfolge.
Ich habe hier eine Grafik zum besseren verständnis angelegt wie das Zahlensystem aussehen muß.

Mein Skript sieht bislang folgendermaßen aus:

Code:
Stage.align = "TL";
Stage.scaleMode = "noScale";
var _t:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
var bgMcHeight = 100;
var bgMcWidth = 100;
var lstrn = new Object();
//Patteners plazieren
lstrn.onResize = function() {
	var countVar:Number;
	var countXpattern = Math.ceil(Stage.width/bgMcWidth);
	var countYpattern = Math.ceil(Stage.height/bgMcHeight);
	if (countXpattern>=countYpattern) {
		countVar = countXpattern;
	}
	else {
		countVar = countYpattern;
	}
	for (var i = 0; i<=countVar; i++) {
		for (var j = 0; j<=countVar; j++) {
			var myBg:MovieClip = _t.attachMovie("bgMc", "bgMc"+i+j, _t.getNextHighestDepth());
			myBg._x = i*bgMcWidth;
			myBg._y = j*bgMcHeight;
			//Hier müßte eine Funktion stehen die jedem Pattern einen individuellen Wert ,wie in der grafik zu sehen ist, zuweist
			//Hab aber keinen plan wie die Funktion aussehen muß
			//_t["bgMc"+i+j]._myWert=?;
			_t["bgMc"+i+j].setMc();
		}
	}
	//container mittig plazieren
	var pos = _t._x=Stage.width/2-_t._width/2;
	_t._y = pos;
};
Stage.addListener(lstrn);
lstrn.onResize();
//Prototype
MovieClip.prototype.setMc = function() {
	this.onPress = function() {
		//trace(this._myWert);
	};
};
Die fla.
Vielleicht weiß jemand wie ich meine Pattern mit diesen Zahlenwerten ausstatten kann.
Damit könnte ich dann weiterarbeiten.
Aus meinem Mathebuch werd ich leider nicht schlau. :)
 
Hallo,
hab nicht so viel Zeit zu schreiben deswegen ganz kurz.
Wie wäre es mit dem Ansatz "Gehe so weit nach unten, bis etwas nach rechts frei ist" und danach "gehe soweit nach rechts, bis etwas nach oben frei ist" etc. Das könnte unendlich weiterlaufen und würde nur einen Richtungsvektor und ein entsprechend aufgebautes Array erfordern.

Gruß
jens
 
Wie wäre es mit dem Ansatz "Gehe so weit nach unten, bis etwas nach rechts frei ist" und danach "gehe soweit nach rechts, bis etwas nach oben frei ist" etc. Das könnte unendlich weiterlaufen und würde nur einen Richtungsvektor und ein entsprechend aufgebautes Array erfordern.

Das ist eine gute Idee aber wie müßte das in AS aussehen? :confused:
 
Naja wie gesagt - ein gut strukturiertes Array, welches ausgehend von der Mitte diesem Algorithmus folgt. Innerhalb dieses Arrays würde ich wie in einem Raster mit Richtungsvektoren einfach gehen, z.B. so:

Code:
meinVektorX = 0;
meinVektorY = 1; // v(0 1) -> wir gehen nach Oben

if(meinArray[aktuellX + meinVektorX][aktuellY + meinVektorY] == frei) {
 // ich kann nach oben gehen, juhey! 
// -> gucken, ob ich nach links gehen kann
meinVektorX = -1;
meinVektorY = 0;
} else {
 // in die alte richtung weitergehen.. aktuellX und aktuellY ändern 
}

Das ist natürlich Pseudocode. Reicht dir das als Ansatz? Eine ganze Lösung wirst du sicher nicht bekommen. Eigeninitiative!
 
Hi,

ich würde die Clips in ihrer Erscheinungsreihenfolge instanzieren, und dabei die Positionierung beachten.

Im Anhang findest Du ein Beispiel dafür.

Gruß
.
 

Anhänge

  • quad.fla
    47,5 KB · Aufrufe: 42
Zurück