3D Würfel (MX Zeichnen API)

Matthias Kannengiesser

Erfahrenes Mitglied
Hi Folks,

Eine kleine Inspiration für alle diejenigen die mit Flash MX arbeiten und 3D Spielerein umsetzen möchten.

PHP:
// Position Berechnen
function setPos(point) {
	scale = fl / ((point.z + fl) + zc);
	xpos = (point.x * scale) + xc;
	ypos = (point.y * scale) + yc;
}

// Würfel Berechnen (Linie für Linie)
function setBox() {
	for (i=0; i < 8; i++) {	
		var scale = (fl / ((cube[i].z + fl) + zc));
		_root[("b" + i) + "x"] = (cube[i].x * scale) + xc;
		_root[("b" + i) + "y"] = (cube[i].y * scale) + yc;		
	}
}

// Array des Würfel
cube = [];

// Grösse
sizeCube = 200;

// Würfelseiten
cube[0] = {x:-sizeCube, y:-sizeCube, z:-sizeCube};
cube[1] = {x:sizeCube, y:-sizeCube, z:-sizeCube};
cube[2] = {x:sizeCube, y:sizeCube, z:-sizeCube};
cube[3] = {x:-sizeCube, y:sizeCube, z:-sizeCube};
cube[4] = {x:-sizeCube, y:-sizeCube, z:sizeCube};
cube[5] = {x:sizeCube, y:-sizeCube, z:sizeCube};
cube[6] = {x:sizeCube, y:sizeCube, z:sizeCube};
cube[7] = {x:-sizeCube, y:sizeCube, z:sizeCube};

// Ausgangsposition 
xc = 270;
yc = 200;
zc = 500;
fl = 250;

// Ablauf
onEnterFrame = function () {
	if (zoom) {
		zc = zc + (_ymouse - oldy);
		oldy = _ymouse;
		if (zc < 100) {
			zc = 100;
		}
	} else {
		xa = (200 - _ymouse) * 0.001;
		ya = (_xmouse - 270) * 0.001;
		cosax = Math.cos(xa);
		sinax = Math.sin(xa);
		cosay = Math.cos(ya);
		sinay = Math.sin(ya);		
		for (i=0; i < 8; i++) {
			p = cube[i];
			z = (cosax * p.z) - (sinax * p.y);
			y = (cosax * p.y) + (sinax * p.z);
			p.z = z;
			p.y = y;
			x = (cosay * p.x) - (sinay * p.z);
			z = (cosay * p.z) + (sinay * p.x);
			p.x = x;
			p.z = z;			
		}
	}
	clear();
	setBox();
	lineStyle(1, 0xff0000, 50);
	moveTo(b0x, b0y);
	lineTo(b1x, b1y);
	lineTo(b2x, b2y);
	lineTo(b3x, b3y);
	lineTo(b0x, b0y);
	moveTo(b4x, b4y);
	lineTo(b5x, b5y);
	lineTo(b6x, b6y);
	lineTo(b7x, b7y);
	lineTo(b4x, b4y);
	moveTo(b0x, b0y);
	lineTo(b4x, b4y);
	moveTo(b1x, b1y);
	lineTo(b5x, b5y);
	moveTo(b2x, b2y);
	lineTo(b6x, b6y);
	moveTo(b3x, b3y);
	lineTo(b7x, b7y);
};
onMouseDown = function () {
	zoom = true;
	oldy = _ymouse;
};
onMouseUp = function () {
	zoom = false;
};

Beispiel:
3D Würfel (mit Maus steuern)

Be inspired.

mfg
Matze K.
 
Hehe, great.

Am interesantesten find' ich wieder die Array/Objektgestaltung, das spaßigste hingegen ist die geometrische Verzerrung. :)

Geist
 
Hi Stephan,

Es ist bereits zu haben, die Vorbestellungen liefen direkt über mich und daher haben alle bereits ein Buch die über flashstar.de bestellt haben. Ich kümmer mich um meine Schäfchen. :)

mfg
Matze K.
 
Ahh !

ich hab's wahrscheinlich noch nicht gekriegt, weil ich in der Schweiz wohne. easy.

Ich hab mich bei der Vorbestellung vor ca. 2 wochen eingetragen. Kommt's jetzt mit der Post ?

Sorry für die Quängelei aber ich bin immer so, wenn ich etwas unbeingt will !

:)
 
Oh da sende mir doch mal am besten deine persönlichen Daten nochmals an: matzek@flashstar.de

Ich werd dem Vertrieb bescheid sagen. Die Vorbestellungen haben wir auf deutschland bezogen! Du sollst schliesslich das Buch endlich in den Händen halten.

mfg
Matze K.
 
Zurück