Comunidad de diseño web y desarrollo en internet online

dudas para una batalla naval

Citar            
MensajeEscrito el 09 Nov 2010 04:27 pm
hola, como estan?
acudo a uds una vez mas, con el fin de solicitar ayuda en mis primeras incursiones en AS3;
estoy tratando de avanzar con un desarrollo de un juego de batalla naval (no muy exitante, verdad? XD, pero me sirve para comprender temas de AS3 y comunicacion de datos)

ya comprendi como draguear y soltar un movieClip en una posicion especifica, pero lo que quiero es poder soltar dicho movieClip en cualquier cuadrante de la grilla, y que se "pegue" al cuadro mas cercano;

en el escenario tengo una grilla construida por un movieClip duplicado varias veces hasta formar un tablero; cada uno de ellos tiene asignado un nombre de instancia (sq1, sq2, etc), y tengo otros movieClips que hacen las veces de flota de barcos (mcNave, mcPortaviones, etc);

el codigo que me funciona bien es el siguiente:

Código :

[as]
import flash.display.Sprite;
import flash.events.MouseEvent;

var casilleros:Array=[sq1, sq2, sq3, sq4, sq5, sq6, sq7, sq8, sq9, sq10, sq11, sq12, sq13, sq14, sq15, sq16, sq17, sq18, sq19, sq20, sq21, sq22, sq23, sq24, sq25, sq26, sq27, sq28];

var flota:Array=[mcNave, mcPortaviones];
for (var i:int=0; i<flota.length; i++){
   flota[i].addEventListener(MouseEvent.MOUSE_DOWN,Arrastrar);
   flota[i].addEventListener(MouseEvent.MOUSE_UP,Soltar);
}

trace("Nave"+mcNave.x, "Portaviones"+mcPortaviones.x);

function Arrastrar(e:MouseEvent){
   e.target.startDrag()
}
function Soltar(e:MouseEvent){
   e.target.stopDrag();
   for (var i:int=0; i<flota.length; i++){
      if(flota[i].hitTestObject(casilleros[0])){
         flota[i].x=casilleros[0].x;
         flota[i].y=casilleros[0].y;
      } else {
         if(flota[i].hitTestObject(casilleros[1])){
         flota[i].x=casilleros[1].x;
         flota[i].y=casilleros[1].y;
         }
      }
      trace("Nave"+mcNave.x, "Portaviones"+mcPortaviones.x);
   }
}
[/as]


de esta manera, cada "barco" se ubica en un cuadrante determinado;

pero lo que quiero es no tener que hacer un "else" para cada casillero.
el tema es que cuando armo un bucle para generar las diferentes instancias del tablero, al soltar cada uno de los "barcos", se "pegan" al ultimo cuadrante de la grilla;

agradeceria mucho cualquier tipo de asistencia para poder resolver mi problema;
saludos,
sebas.

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Nov 2010 07:19 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Nov 2010 07:58 pm
jorge, como siempre, muchas gracias!
el material que me pasaste parece realmente interesante, asi que ya me meto de lleno en el;
ademas me viene bien, para tratar de resolver x mi cuenta el pasaje de los mismos a as3, asunto en el que me estoy metiendo, por recomendaciones de mis docentes, quienes me dijeron que me meta sin miedo;
asi que una vez mas, gracias, y te contare como me ha resultado;
saludos!
sebas.

Por flashodelico

80 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.