All pastes #470874 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-04 15:41 UTC
rendered paste body
/**
 * (c) jph-dev.net 2007
 * 
 * @author Jean-Pascal Hövel <contact@jph-dev.net>
 */
package engine 
{
	import flash.display.DisplayObject;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import engine.Cam;
	
	/**
	 * Cam Class
	 * Kamera Klasse der Engine. Ihr werden Objekte 
	 * zur Darstellung übergeben.
	 * 
	 * 
	 * @author Jean-Pascal Hövel <contact@jph-dev.net>
	 */
	public class CamObject
	{	
		/*******************************************************************************
										  PRIVATE-VARS
		********************************************************************************/
		
		/**
		 * Speichert die Objekt
		 * Koordinaten.
		 * 
		 */
		private var point:Object = {x:0, y:0, z:0};
			
		/**
		 * Das Objekt auf dem
		 * das Cam Objekt arbeitet.
		 * 
		 */
		private var object:DisplayObject;
					
		/*******************************************************************************
										   CONSTRUCTOR
		********************************************************************************/
		
		public function CamObject(target:DisplayObject)
		{
			// super
			super();
			
			// ziel speichern
			object = target;
	
			// listener anmelden
			target.addEventListener(Event.ENTER_FRAME, update);
		}

		/*******************************************************************************
										  PUBLIC-GETTER
		********************************************************************************/
		
		public function get x():Number
		{
			return point.x;
		}
		
		public function get y():Number 
		{
			return point.y;
		}
		
		public function get z():Number 
		{
			return point.z;
		}
		
		public function get target():DisplayObject
		{
			return object;
		}
		
		/*******************************************************************************
										  PUBLIC-SETTER
		********************************************************************************/
		
		public function set x(x:Number):void 
		{
			point.x = x;
		}
		
		public function set y(y:Number):void 
		{
			point.y = y;
		}
		
		public function set z(z:Number):void 
		{
			point.z = z;
		}
		
		/*******************************************************************************
										  EVENT-HANDLER
		********************************************************************************/
		
		private function update(event:Event):void
		{
			var dz:Number 	 = (1000 + z) - Cam.z;
			var scale:Number = 1000 / dz;
			
			if(dz > 0)
			{	
				object.scaleX = scale / 10;
				object.scaleY = scale / 10;
				object.x 	  = (point.x - Cam.x) * (scale / 10);
				object.y 	  = (point.y - Cam.y) * (scale / 10);
				object.alpha  = 100 - 99 * (dz / 1000) *.5;
			}
			else point.z += 4000;		
		}
	}
}