fun

Fireball

Wednesday, November 19th, 2008 | examples | Comments

Run for your lives!!!


source

package
{
	import flash.display.Bitmap;
 
	import gs.TweenMax;
	import gs.easing.Quad;
 
	import org.papervision3d.core.effects.BitmapFireEffect;
	import org.papervision3d.core.effects.BitmapMotionEffect;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.view.layer.BitmapEffectLayer;
 
	[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")]
	public class Fireball extends BasicView
	{
		[Embed(source="assets/3138.jpg")]
		private var bitmapAsset:Class;
 
		public function Fireball()
		{
			var headerText:headerContainer = new headerContainer();
			headerText.header.text = "Fireball";
			addChild(headerText);
 
			var bitmapEffectLayer:BitmapEffectLayer = new BitmapEffectLayer(viewport);
 
			var bitmap:Bitmap = Bitmap(new bitmapAsset);
			var material:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData);
 
			var sphere:Sphere = new Sphere(material, 100, 10, 10);
			scene.addChild(sphere);
 
			var bitmapFireEffect:BitmapFireEffect = new BitmapFireEffect(10);
			bitmapEffectLayer.addEffect(bitmapFireEffect);
 
			bitmapEffectLayer.addDisplayObject3D(sphere);
 
			viewport.containerSprite.addLayer(bitmapEffectLayer);
 
			startRendering();
			var bezierThrough:Array = [];
			for(var i:int = 0; i < 10; i++)
			{
				var bezierPoint:Object = {};
				bezierPoint.x = Math.random() * 2000 - 1000;
				bezierPoint.y = Math.random() * 2000 - 1000;
				bezierPoint.z = Math.random() * 1000 - 500;
				bezierThrough.push(bezierPoint);
			}
			TweenMax.to(sphere, 20, {x:1000, y:1000, z:1000, bezierThrough:bezierThrough, yoyo:true, ease:Quad.easeInOut});
		}
	}
}

Tags:

Fun with Pixel3D and Vertex3D

Tuesday, November 18th, 2008 | examples | Comments

I was just playing around with Pixel3D and came up with the following result.

The pixels are placed by finding each vertex of the sphere then proportionately moving from the origin (x:0, y:0, z:0) out to the vertex.

View example
source

package {
 
	import flash.events.Event;
 
	import org.papervision3d.core.geom.Pixels;
	import org.papervision3d.core.geom.renderables.Pixel3D;
	import org.papervision3d.core.geom.renderables.Vertex3D;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.view.layer.BitmapEffectLayer;
 
	[SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")]
	public class PixelField extends BasicView
	{
		private const NUM_PIXELS:int = 200;
		private var pixels:Pixels;
		public function PixelField()
		{
			camera.y = 100;
 
			//you need a bitmapEffectLayer for the pixels
			var bitmapEffectLayer:BitmapEffectLayer = new BitmapEffectLayer(viewport);
			//this allows for the neat overdraw cylinder effect
			//bitmapEffectLayer.clearBeforeRender = true;
			pixels = new Pixels(bitmapEffectLayer);
 
			var sphere:Sphere = new Sphere(new ColorMaterial(0xffffff, 0), 500);
			scene.addChild(sphere);
			singleRender();
 
			for each(var vertex3D:Vertex3D in sphere.geometry.vertices)
			{
				for(var i:int = 0; i < NUM_PIXELS; i++)
				{
					//move the x, y, z out to the vertex3D
					//in proportion to the # of pixels
					var randX:Number = vertex3D.x *(i / NUM_PIXELS);
					var randY:Number = vertex3D.y *(i / NUM_PIXELS);
					var randZ:Number = vertex3D.z *(i / NUM_PIXELS);
 
					//Notice the color is an ARGB value, so 8 f's instead of 6
					//meaning the first FF = alpha, then red, green, blue
					var randColor:Number = Math.random() * 0xffffffff;
					var pixel:Pixel3D = new Pixel3D(randColor, randX, randY, randZ);
 
					pixels.addPixel3D(pixel);
				}
 
 
			}
			//remember to add the bitmapEffectLayer to the viewport
			viewport.containerSprite.addLayer(bitmapEffectLayer);
			scene.addChild(pixels);
 
			addEventListener(Event.ENTER_FRAME, renderAndRotateHandler);
		}
 
		private function renderAndRotateHandler(event:Event):void
		{
			pixels.yaw(1);
			singleRender();
		}
	}
}

Tags: , ,

Search

Recommended Books

Speaking at FITC Toronto

 

February 2012
M T W T F S S
« May    
 12345
6789101112
13141516171819
20212223242526
272829  

Preferred Video Tutorial Resolution

  • 1024x768 (53%, 85 Votes)
  • 1280x1024 (15%, 24 Votes)
  • 1920x1080 (15%, 24 Votes)
  • 800x600 (13%, 20 Votes)
  • 480x320 (4%, 6 Votes)
  • 640x480 (0%, 2 Votes)

Total Voters: 160

Loading ... Loading ...