/** * (c) jph-dev.net 2007 * * @author Jean-Pascal Hövel */ 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 */ 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; } } }