Advertisement
Guest User

main.ts

a guest
Dec 28th, 2014
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// <reference path="defs/PIXI.d.ts" />
  2. /// <reference path="defs/stats.d.ts" />
  3. /// <reference path="Shape3DImage.ts"/>
  4. /// <reference path="CustomShape.ts"/>
  5.  
  6. module djankey {
  7.     export class ShapesEffect {
  8.         private canvas:HTMLElement;
  9.         private stage:PIXI.Stage;
  10.         private renderer:any;
  11.         private shapes:Array<djankey.Shape3DImage> = [];
  12.         private stats:Stats;
  13.         private canvas_rect:ClientRect;
  14.         private mouse_x:number;
  15.         private mouse_y:number;
  16.  
  17.         constructor(canvasID:string) {
  18.             this.canvas = <HTMLElement>document.getElementById(canvasID);
  19.             this.init();
  20.         }
  21.  
  22.         init = () => {
  23.             this.stage = new PIXI.Stage(0x000000);
  24.             this.stage.interactive = true;
  25.             this.renderer = PIXI.autoDetectRenderer(465, 465);
  26.             this.renderer.view.style.position = "absolute";
  27.             this.renderer.view.style.top = "0px";
  28.             this.renderer.view.style.left = "0px";
  29.             this.canvas.appendChild(this.renderer.view);
  30.  
  31.             this.canvas_rect = this.canvas.getBoundingClientRect();
  32.             this.canvas.addEventListener("mousemove", this.onMousemove, true);
  33.             this.canvas.addEventListener("touchmove", this.onTouchmove, true);
  34.  
  35.             // stats
  36.             this.stats = new Stats();
  37.             this.stats.setMode(0);
  38.             document.body.appendChild(this.stats.domElement);
  39.  
  40.             requestAnimFrame(this.update);
  41.         }
  42.  
  43.         onMousemove = (event:any):void => {
  44.             this.mouse_x = event.clientX - this.canvas_rect.left;
  45.             this.mouse_y = event.clientY - this.canvas_rect.top;
  46.             this.pointerMove();
  47.         }
  48.  
  49.         onTouchmove = (event:any):void => {
  50.             this.mouse_x = event.touches[0].clientX - this.canvas_rect.left;
  51.             this.mouse_y = event.touches[0].clientY - this.canvas_rect.top;
  52.             this.pointerMove();
  53.         }
  54.  
  55.         pointerMove = ():void => {
  56.             var c:number = 3;
  57.             var color:number = Math.random()*0xFFFFFF<<0;
  58.             var cs:CustomShape;
  59.             var s:Shape3DImage;
  60.  
  61.             while(c-->0){
  62.                 cs = new djankey.CustomShape(color);
  63.                 s = new djankey.Shape3DImage(cs.generateTexture(), Math.floor(Math.random()*1000));
  64.                 this.stage.addChild(s);
  65.                 s.x = this.mouse_x;
  66.                 s.y = this.mouse_y;
  67.                 this.shapes.push(s);
  68.             }
  69.         }
  70.  
  71.         update = ():void => {
  72.             requestAnimFrame(this.update);
  73.  
  74.             var t:number = new Date().getTime();
  75.             var s:djankey.Shape3DImage;
  76.  
  77.             for (var i:number = this.shapes.length - 1; i >= 0;i-- ) {
  78.                 s = this.shapes[i];
  79.                 s.update(t);
  80.  
  81.                 if (s.power <= 0) {
  82.                     this.shapes.splice(i, 1);
  83.                     s.parent.removeChild(s);
  84.                 }
  85.             }
  86.  
  87.             this.renderer.render(this.stage);
  88.             this.stats.update();
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement