I like cubes… Papervision3D exploding cubes especially
23 Jan
Papervision3D sliced Image-Cube with XML
13 Nov
Pfffft… not to have it rotten on my harddrive here my example of the modified sliced cube PV3D from John Lindquist. Here’s my code (making the “pile of crap” even bigger
A memory game in AS3 / Papervision3D
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!


