rodrigolopezpeker

Genome2d > GCamera mask

Oct 3rd, 2013
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package {
  2.  
  3.     import com.genome2d.components.GCamera;
  4.     import com.genome2d.components.renderables.GSprite;
  5.     import com.genome2d.core.GConfig;
  6.     import com.genome2d.core.GNode;
  7.     import com.genome2d.core.GNodeFactory;
  8.     import com.genome2d.core.Genome2D;
  9.     import com.genome2d.textures.factories.GTextureFactory;
  10.     import com.greensock.TweenMax;
  11.     import com.greensock.easing.Back;
  12.  
  13.     import flash.display.BitmapData;
  14.     import flash.display.Sprite;
  15.     import flash.display.StageAlign;
  16.     import flash.display.StageQuality;
  17.     import flash.display.StageScaleMode;
  18.     import flash.events.KeyboardEvent;
  19.     import flash.events.MouseEvent;
  20.     import flash.geom.Rectangle;
  21.     import flash.text.TextField;
  22.     import flash.text.TextFormat;
  23.     import flash.ui.Keyboard;
  24.  
  25.     [SWF(width="800", height="600", backgroundColor="#323232", frameRate="60")]
  26.     public class Main extends Sprite {
  27.  
  28.         private var viewport: Rectangle;
  29.         private var _cams: Vector.<GCamera> = new Vector.<GCamera>();
  30.         private var container: GNode;
  31.         private var showAll: Boolean = false;
  32.         private var showAllCameras: Boolean = true;
  33.  
  34.         public function Main() {
  35.             init();
  36.         }
  37.  
  38.         private function init(): void {
  39.             stage.scaleMode = StageScaleMode.NO_SCALE;
  40.             stage.align = StageAlign.TOP_LEFT;
  41.             stage.quality = StageQuality.LOW;
  42.             stage.showDefaultContextMenu = false;
  43.             initGenome();
  44.         }
  45.  
  46.         private function initGenome(): void {
  47.             viewport = new Rectangle(0, 0, 800, 600);
  48.             var config: GConfig = new GConfig(viewport);
  49.             config.showExtendedStats = true;
  50.             config.enableStats = true;
  51.             config.backgroundColor = stage.color;
  52.             Genome2D.getInstance().onInitialized.addOnce(onInit);
  53.             Genome2D.getInstance().init(stage, config);
  54.         }
  55.  
  56.         private function onInit(): void {
  57.  
  58.             createTextures();
  59.  
  60.             // create 4 cameras.
  61.             addCamera(1, 0xFF0000);
  62.             addCamera(2, 0xFFDD00);
  63.             addCamera(4, 0x0000FF);
  64.             addCamera(8, 0x00FF00);
  65.  
  66.             // adjust the viewports.
  67.             var viewW: Number = 1 / _cams.length;
  68.             for (var i: int = 0; i < _cams.length; i++) {
  69.                 var cam: GCamera = _cams[i];
  70.                 cam.normalizedViewWidth = viewW;
  71.                 cam.normalizedViewX = i * viewW;
  72.                 var zoom: Number = 0.5 + Math.random() * 1.5;
  73.                 //normalizedViewWidth: 0.1 + Math.random() * 0.4, normalizedViewX: 0.2 + Math.random() * 0.5,
  74.                 TweenMax.to(cam, 0.5 + Math.random(), {  zoom: zoom, yoyo: true, repeat: -1});
  75. //              TweenMax.to( cam.node.transform, 1, { x:'30', y:'30', yoyo:true, repeat:-1});
  76.             }
  77.  
  78.             container = GNodeFactory.createNode();
  79.             Genome2D.getInstance().root.addChild(container);
  80.  
  81.             // add objects.
  82.             for (i = 0; i < 4; i++) {
  83.                 var spr: GSprite = GNodeFactory.createNodeWithComponent(GSprite) as GSprite;
  84.                 spr.textureId = 'box' + i;
  85.                 var twn: Object = {};
  86.                 twn.x = String(Math.random() * 120 - 60);
  87.                 twn.ease = Back.easeOut;
  88.                 twn.yoyo = true;
  89.                 twn.repeat = -1;
  90.                 TweenMax.to(spr.node.transform, 0.8, twn);
  91.  
  92.                 spr.node.cameraGroup = Math.pow(2, i);
  93.                 container.addChild(spr.node);
  94.                 spr.node.userData.idx = i;
  95.                 spr.node.transform.y = -150 + i * 100;
  96.             }
  97.  
  98.             stage.addEventListener(MouseEvent.CLICK, onStageClick);
  99.             stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKey);
  100.             Genome2D.getInstance().onPreUpdate.add(onUpdate);
  101.         }
  102.  
  103.         private function handleKey(event: KeyboardEvent): void {
  104.             if (event.keyCode == Keyboard.SPACE) {
  105.                 toggleCameras();
  106.             }
  107.         }
  108.  
  109.  
  110.         private function toggleCameras(): void {
  111.             showAllCameras = !showAllCameras;
  112.             var viewW: Number = 1 / _cams.length;
  113.             TweenMax.to(_cams[0], 1, { normalizedViewWidth: showAllCameras ? viewW : 1 });
  114. //          _cams[0].active
  115.             for (var i: int = 1; i < _cams.length; i++) {
  116.                 _cams[i].node.active = showAllCameras;
  117.             }
  118.  
  119.         }
  120.  
  121.         private function onUpdate(t: int): void {
  122.             _cams[2].node.transform.rotation += .01;
  123.         }
  124.  
  125.  
  126.         private function onStageClick(event: MouseEvent): void {
  127.             showAll = !showAll;
  128.             for (var child: GNode = container.firstChild; child != null; child = child.next) {
  129.                 child.cameraGroup = showAll ? 0 : Math.pow(2, child.userData.idx);
  130.             }
  131.         }
  132.  
  133.         private function createTextures(): void {
  134.             // create 4 cube textures.
  135.             var bd: BitmapData;
  136.             var spr: Sprite = new Sprite();
  137.             spr.graphics.beginFill(0x0);
  138.             spr.graphics.drawRoundRect(0, 0, 64, 64, 12);
  139.             spr.graphics.endFill();
  140.             var tf: TextField = new TextField();
  141.             tf.defaultTextFormat = new TextFormat('Arial', 20, 0xFF0000);
  142.             tf.autoSize = 'left';
  143.             spr.addChild(tf);
  144.  
  145.             bd = new BitmapData(64, 64, true, 0x0);
  146.             for (var i: int = 0; i < 4; i++) {
  147.                 tf.text = String(i + 1);
  148.                 bd.draw(spr);
  149.                 GTextureFactory.createFromBitmapData('box' + i, bd);
  150.             }
  151.         }
  152.  
  153.         private function onStageClick(event: MouseEvent): void {
  154.             showAll = !showAll;
  155.             for (var child: GNode = container.firstChild; child != null; child = child.next) {
  156.                 child.cameraGroup = showAll ? 0 : Math.pow(2, child.userData.idx);
  157.             }
  158.         }
  159.  
  160.         private function addCamera(pMask: int, pColor: uint): void {
  161.             var cam: GCamera = GNodeFactory.createNodeWithComponent(GCamera) as GCamera;
  162.             Genome2D.getInstance().root.addChild(cam.node);
  163.             cam.mask = pMask;
  164.             cam.backgroundRed = (( pColor & 0xFF0000 ) >> 16 ) / 255;
  165.             cam.backgroundGreen = (( pColor & 0x00FF00 ) >> 8 ) / 255;
  166.             cam.backgroundBlue = ( pColor & 0x0000FF ) / 255;
  167.             cam.backgroundAlpha = 0.0001;
  168.             _cams.push(cam);
  169.         }
  170.     }
  171. }
Advertisement
Add Comment
Please, Sign In to add comment