Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Package de Funciones basicas
- // (c)2012 Cèsar Rincón Nadal
- // EMAID - Escola d'art i diseny de Vilanova
- package emaid.commons {
- // Define la clase publica CTools
- public class CTools {
- // Contructor de la clase CTools
- public function CTools() {
- }
- // Variables publicas de control de teclado
- public var kUp:Boolean = false;
- public var kDown:Boolean = false;
- public var kLeft:Boolean = false;
- public var kRight:Boolean = false;
- public var kSpace:Boolean = false;
- // Funcion publica de KeysDown
- public function KeysDown(key:Number):void {
- // Marca como pulsada la tecla correspondiente
- switch (key) {
- case 32: // Espacio
- kSpace = true;
- break;
- case 38: // Arriba
- kUp = true;
- break;
- case 40: // Abajo
- kDown = true;
- break;
- case 37: // Izquierda
- kLeft = true;
- break;
- case 39: // Derecha
- kRight = true;
- break;
- }
- }
- // Funcion publica de KeysUp
- public function KeysUp(key:Number):void {
- // Marca como soltada la tecla correspondiente
- switch (key) {
- case 32: // Espacio
- kSpace = false;
- break;
- case 38: // Arriba
- kUp = false;
- break;
- case 40: // Abajo
- kDown = false;
- break;
- case 37: // Izquierda
- kLeft = false;
- break;
- case 39: // Derecha
- kRight = false;
- break;
- }
- }
- // Funcion de Random Range (enteros)
- public function RandomRange(min:Number, max:Number):Number {
- // Devuelve un numero aleatorio entre el Minimo y el maximo
- return Math.floor((Math.random() * (max - min)) + min);
- }
- // Funcion de colision por cajas (Box Collision)
- public function BoxCollision(xA:Number, yA:Number, wA:Number, hA:Number, xB:Number, yB:Number, wB:Number, hB:Number):Boolean {
- // Calcula la colision por cajas
- // xA -> Posicion X del objeto A
- // yA -> Posicion Y del objeto A
- // wA -> Ancho del objeto A
- // hA -> Altura del objeto A
- // xB -> Posicion X del objeto B
- // yB -> Posicion Y del objeto B
- // wB -> Ancho del objeto B
- // hB -> Altura del objeto B
- // Variables para el calculo
- var smallX:Number, smallY:Number, smallW:Number, smallH:Number;
- var bigX:Number, bigY:Number, bigW:Number, bigH:Number;
- // Asigna anchos
- if (wA >= wB) {
- bigX = xA, bigW = wA; // Si el ancho del objeto A es mayor...
- smallX = xB, smallW = wB;
- } else {
- bigX = xB, bigW = wB; // Si el ancho del objeto B es mayor...
- smallX = xA, smallW = wA;
- }
- // Asigna altos
- if (hA >= hB) {
- bigY = yA, bigH = hA; // Si el alto del objeto A es mayor...
- smallY = yB, smallH = hB;
- } else {
- bigY = yB, bigH = hB; // Si el alto del objeto B es mayor...
- smallY = yA, smallH = hA;
- }
- // Verifica si hay colision
- if (
- (
- ((smallX >= bigX) && (smallX <= (bigX + bigW))) // Rango horizontal
- ||
- (((smallX + smallW) >= bigX) && ((smallX + smallW) <= (bigX + bigW)))
- )
- &&
- (
- ((smallY >= bigY) && (smallY <= (bigY + bigH))) // Rango vertical
- ||
- (((smallY + smallH) >= bigY) && ((smallY + smallH) <= (bigY + bigH)))
- )
- ) {
- // Si hay colision, devuelve verdadero
- return true;
- } else {
- // Si no la hay, devuelve falso
- return false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement