Foros del Web » Creando para Internet » Flash y Actionscript »

localToGlobal y globalToLocal

Estas en el tema de localToGlobal y globalToLocal en el foro de Flash y Actionscript en Foros del Web. Buenas. Estoy implementando el juego Battle Ship (hundir la flota, submarine...). Estoy posicionando los barquitos en una cuadrícula, y a la hora de ajustar el ...
  #1 (permalink)  
Antiguo 30/01/2011, 07:49
Avatar de dvpareja  
Fecha de Ingreso: junio-2010
Ubicación: Vélez-Málaga
Mensajes: 126
Antigüedad: 13 años, 11 meses
Puntos: 11
localToGlobal y globalToLocal

Buenas.

Estoy implementando el juego Battle Ship (hundir la flota, submarine...).

Estoy posicionando los barquitos en una cuadrícula, y a la hora de ajustar el barquito a la posición seleccionada, estoy intentando posicionarlos de esta manera:
Código ActionScript:
Ver original
  1. var myPoint:Point = new Point (seleccionado.x,seleccionado.y) // seleccionado es el barquito que estoy moviendo
  2. tableroJugador.casilla.globalToLocal(myPoint) //casilla es el MC que está dentro de el MC tableroJugador, donde estoy posicionando el barquito.
  3. seleccionado.x = myPoint.x
  4. seleccionado.y = myPoint.y

Pues no hace nada y no encuentro mucha información acerca de este método en internet.

¿Alguien puede ayudarme?

Gracias de antemano.
  #2 (permalink)  
Antiguo 31/01/2011, 11:32
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: localToGlobal y globalToLocal

No creo que se necesario utilizar los metodos localtoglobal o localToGlobal, porque esos generalmente se utilizan cuando tienes una anidacion compleja de simbolos y cada objeto tiene un sistema de coordinadas diferente, almenos asi le sacarias provecho a esos metodos.

Yo lo haria de esta manera:

Código actionscript:
Ver original
  1. private function crearCuadricula():void
  2.         {
  3.  
  4.             _cuadricula = new Array();
  5.             //ancho de la escena / tamano de la cuadricula = numero de columnas
  6.             for (var i:int = 0; i<stage.stageWidth/CUADRICULA_ANCHO; i++)
  7.             {
  8.                 _cuadricula[i] = new Array();
  9.                 //alto de la escena / tamano de la cuadricula = numero de filas
  10.                 for (var j:int = 0; j<stage.stageHeight/CUADRICULA_ALTO; j++)
  11.                 {
  12.                     _cuadricula[i][j] = new Array();
  13.                 }
  14.             }
  15.         }
  16.  
  17. private function crearBarco():void
  18.         {
  19.             barcos = new Array();
  20.             for (var i:int = 0; i< MAXBARCOS; i++)
  21.             {
  22.                 //crea un barco y lo agrega al display list.
  23.                 // y al array barcos
  24.  
  25.                 var barco:Barco = new Barco();
  26.                 barco.x = Math.random() * stage.stageWidth;
  27.                 barco.y = Math.random() * stage.stageHeight;
  28.                 addChild(barco);
  29.                 barcos.push(barco);
  30.             }
  31.  
  32.  
  33.         }
  34.  
  35. private function enlazarBarcosACuadricula():void
  36.         {
  37.             for (var i:int = 0; i<MAXBARCOS; i++)
  38.             {
  39.                 //dividir la posicion por el tamano de la cuadricula
  40.                 //nos dice en que fila y columna esta el barco
  41.                 var barco:Barco = barcos[i] as Barco;
  42.                 var xpos:int = Math.floor(barco.x / CUADRICULA_ANCHO);
  43.                 var ypos:int = Math.floor(barco.y / CUADRICULA_ALTO);
  44.                 _cuadricula[xpos][ypos].push(barco);
  45.             }
  46.         }

donde _cuadricula[][] es un Array de Arrays (Una Matrix)

En mi página web, publique una clase reusable para dividir en celdas el escenario, y crear una cuadricula o tilebased escena. Entra y quiza encuentres algo interesante.

Aqui te dejo el link

http://alanchavez.com/deteccion-de-c...ased-collision
  #3 (permalink)  
Antiguo 31/01/2011, 11:42
Avatar de dvpareja  
Fecha de Ingreso: junio-2010
Ubicación: Vélez-Málaga
Mensajes: 126
Antigüedad: 13 años, 11 meses
Puntos: 11
Respuesta: localToGlobal y globalToLocal

Muchas gracias por tu respuesta e información.

La clase de la cuadrícula la tengo hecha, y no se trataba de posicionar los barcos automáticamente, si no con drag&drop, por eso necesitaba dar el último ajuste para que el usuario no pudiese dejarlos entre dos casillas.

Lo que hice al final es hacer la transformación de coordenadas yo mismo, sumando a las coordenadas de la casilla en cuestión las coordenadas del contenedor.

De todas formas, si alguien sabe usar estos métodos, sería interesante hacer un tutorial. En cuanto tenga tiempo y me aclaré, publicaré los resultados en cuanto dé con la solución.

Muchas gracias nuevamente

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:05.