The cubewall
A simple XML driven gallery (noooo way, not another one!). I like cubes. So I made an exploding wall. Sorry, no source – it’s too crappy. Anyway: Additionally there will be some more functionality if I ever find time. Physics for instance…

(weiterlesen…)

Der Studyfinder

Es ist vollbracht. DAS Projekt 2009 ist online. Ohne viel TamTam, jedoch mit der Hoffnung auf Medienwirksamkeit: der TU Ilmenau Studyfinder. Was mit einem samstäglichen Experiment auf dem Küchenfußboden begann, ist nun im Netz. Obwohl das Projekt anfänglich auf Flash & Papervision3D abzielte, ist es ein reines AS3-2D-Projekt geblieben. Dabei wurde eine Extension für das neue Typo3-System der TU geschrieben, welche Redakteuren die komfortable Pflege der Flash-Inhalt gestattet.

PS:

Ich will meine Projektliste updaten… Da ich aber gerade an einigen Projekten gleichzeitig schraube, mache ich erstmal ne Liste in aller Kürze – auch für mich, damit ich’s nicht vergesse :)

  • Foto-Forp / AS3+Papervision3D
  • formplusraum / AS3+Papervision
  • worschech architectects / AS3
  • weimar.mobil 2.0 / concept
  • online terminals weimar / typo3
  • interactivesites … nuja…

PV3D Memory

Three things: Getting a computer to serve a game, have it in Flash and use 3D techniques. Recently, whilst planning a project (secretly!) I was encouraged to create  a little memory game. Google helped and if found this. Since it’s Away3D I tried to get it running with PV3D. Initially with CUBEs I ran into performance problems. Now I use a DisplayObject3DContainer with two Plane objects (front and back) to get that thing up and running.

Well, I would make a tutorial but Yagiz Gurgul‘s one is great to get the game logic. If anyone is interested in the PV3D constructor I am happy to post it here or provide a download… Here the snippet of the two-sided card:

private function makeTwoSidedDisplayObject(skin:String, id:int):DisplayObject3D {
			var do3d:DisplayObject3D = new DisplayObject3D();
			do3d.useOwnContainer = true;
			do3d.filters = [new DropShadowFilter()];
 
			var cardFront:Plane = makePlane(skin);
			var cardBack:Plane = makePlane('assets/back.png');			
 
// only the backside gets a listener for mouseEvents
			cardBack.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, planeClickedHandler);
 
// add the planes to the displayObject
			do3d.addChild(cardBack);
			do3d.addChild(cardFront);
			cardFront.rotationY = 180;
			cardBack.z = -1;
			do3d.id = id;
 
			// bend (uses the BEND MODIFIER CLASS)
			 var bendBack:Bend = new Bend(cardBack);
			 var bendFront:Bend  = new Bend(cardFront);
			cardBack.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, function() { bendBack.bend(Bend.X, Bend.Z, -0.5, 0.5); bendFront.bend(Bend.X, Bend.Z, 0.3, -0.3); Tweener.addTween(cardBack, { z: -15, transition:"easeOut" } ); } );
			cardBack.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, function() { bendBack.bend(Bend.X, Bend.Z, 0, 0); bendFront.bend(Bend.X, Bend.Z, 0, 0); Tweener.addTween(cardBack, { z: -1 } ); } );
			cardBack.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, function() { bendBack.bend(Bend.X, Bend.Z, 0, 0); bendFront.bend(Bend.X, Bend.Z, 0, 0);  } );
 
			return do3d;
		}
		//
		private function makePlane(skin:String):Plane {
			var bitmapMaterial:BitmapFileMaterial = new BitmapFileMaterial(skin);
			bitmapMaterial.interactive = true;
			bitmapMaterial.smooth = true;
			bitmapMaterial.tiled = true;
			var p:Plane = new Plane(bitmapMaterial, cardWidth, cardHeight, 6, 6);
			return p;
		}

Actually it’s quite simple: creating two planes, having one set a bit back (cardBack.z = -1) and rotate it 180 degrees. By the way: the cardFront is actually turned down – so don’t get confused… The game has sound handlers as well and reads the content from a xml file.
Anyway – check it out and have fun! -> Brüno!