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

 

May 2012
M T W T F S S
« May    
 123456
78910111213
14151617181920
21222324252627
28293031  

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 ...