I like cubes… Papervision3D exploding cubes especially
23 Jan
STUDYFINDER online
Jan
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…
A memory game in AS3 / Papervision3D
13 Nov
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!


