Advertisement
NightFox

emaid.commons.CTools

Jan 28th, 2013
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Package de Funciones basicas
  2. // (c)2012 Cèsar Rincón Nadal
  3. // EMAID - Escola d'art i diseny de Vilanova
  4. package emaid.commons {
  5.    
  6.     // Define la clase publica CTools
  7.     public class CTools {
  8.        
  9.         // Contructor de la clase CTools
  10.         public function CTools() {
  11.            
  12.         }
  13.        
  14.        
  15.        
  16.         // Variables publicas de control de teclado
  17.         public var kUp:Boolean = false;
  18.         public var kDown:Boolean = false;
  19.         public var kLeft:Boolean = false;
  20.         public var kRight:Boolean = false;
  21.         public var kSpace:Boolean = false;
  22.        
  23.         // Funcion publica de KeysDown
  24.         public function KeysDown(key:Number):void {
  25.             // Marca como pulsada la tecla correspondiente
  26.             switch (key) {
  27.                 case 32:    // Espacio
  28.                     kSpace = true;
  29.                     break;
  30.                 case 38:    // Arriba
  31.                     kUp = true;
  32.                     break;
  33.                 case 40:    // Abajo
  34.                     kDown = true;
  35.                     break;
  36.                 case 37:    // Izquierda
  37.                     kLeft = true;
  38.                     break;
  39.                 case 39:    // Derecha
  40.                     kRight = true;
  41.                     break;
  42.             }
  43.         }
  44.        
  45.         // Funcion publica de KeysUp
  46.         public function KeysUp(key:Number):void {
  47.             // Marca como soltada la tecla correspondiente
  48.             switch (key) {
  49.                 case 32:    // Espacio
  50.                     kSpace = false;
  51.                     break;
  52.                 case 38:    // Arriba
  53.                     kUp = false;
  54.                     break;
  55.                 case 40:    // Abajo
  56.                     kDown = false;
  57.                     break;
  58.                 case 37:    // Izquierda
  59.                     kLeft = false;
  60.                     break;
  61.                 case 39:    // Derecha
  62.                     kRight = false;
  63.                     break;
  64.             }
  65.         }
  66.        
  67.        
  68.        
  69.         // Funcion de Random Range (enteros)
  70.         public function RandomRange(min:Number, max:Number):Number {
  71.             // Devuelve un numero aleatorio entre el Minimo y el maximo
  72.             return Math.floor((Math.random() * (max - min)) + min);
  73.         }
  74.        
  75.        
  76.        
  77.         // Funcion de colision por cajas (Box Collision)
  78.         public function BoxCollision(xA:Number, yA:Number, wA:Number, hA:Number, xB:Number, yB:Number, wB:Number, hB:Number):Boolean {
  79.            
  80.             // Calcula la colision por cajas
  81.             // xA -> Posicion X del objeto A
  82.             // yA -> Posicion Y del objeto A
  83.             // wA -> Ancho del objeto A
  84.             // hA -> Altura del objeto A
  85.             // xB -> Posicion X del objeto B
  86.             // yB -> Posicion Y del objeto B
  87.             // wB -> Ancho del objeto B
  88.             // hB -> Altura del objeto B
  89.            
  90.             // Variables para el calculo
  91.             var smallX:Number, smallY:Number, smallW:Number, smallH:Number;
  92.             var bigX:Number, bigY:Number, bigW:Number, bigH:Number;
  93.        
  94.             // Asigna anchos
  95.             if (wA >= wB) {
  96.                 bigX = xA, bigW = wA;       // Si el ancho del objeto A es mayor...
  97.                 smallX = xB, smallW = wB;
  98.             } else {   
  99.                 bigX = xB, bigW = wB;       // Si el ancho del objeto B es mayor...
  100.                 smallX = xA, smallW = wA;
  101.             }
  102.        
  103.             // Asigna altos
  104.             if (hA >= hB) {
  105.                 bigY = yA, bigH = hA;       // Si el alto del objeto A es mayor...
  106.                 smallY = yB, smallH = hB;
  107.             } else {
  108.                 bigY = yB, bigH = hB;       // Si el alto del objeto B es mayor...
  109.                 smallY = yA, smallH = hA;
  110.             }
  111.        
  112.             // Verifica si hay colision
  113.             if (
  114.                 (
  115.                 ((smallX >= bigX) && (smallX <= (bigX + bigW)))     // Rango horizontal
  116.                 ||
  117.                 (((smallX + smallW) >= bigX) && ((smallX + smallW) <= (bigX + bigW)))
  118.                 )
  119.                 &&
  120.                 (
  121.                 ((smallY >= bigY) && (smallY <= (bigY + bigH)))     // Rango vertical
  122.                 ||
  123.                 (((smallY + smallH) >= bigY) && ((smallY + smallH) <= (bigY + bigH)))
  124.                 )
  125.                 ) {
  126.                 // Si hay colision, devuelve verdadero
  127.                 return true;
  128.             } else {
  129.                 // Si no la hay, devuelve falso
  130.                 return false;
  131.             }
  132.                    
  133.         }
  134.        
  135.        
  136.     }
  137.    
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement