Estaba creando un juego..pero... me vino una consulta...
Es que miren...Una parte de mi juego.. Uno debe hacer Click en un panel de 20*20
La idea es que al hacer click en uno si es que el cuadro del lado es del mismo color... haga la misma accion y haci los del lado de el y asi continuamente hasta que no halla mas...
Miren..Tengo el codigo.. Y sale todo bien..esepto por que ..para que siguiente cuadro haga la accion debo crear un for Igual... Es bastante molestoso y el Script se alarga mucho.. Para pero llevo el Sexto for y aun no rellena el cuadrado entero en el caso de que todos los cuadrados sean de un color...
Este es el Codigo
Antes esplico que:
es en As3 pero igual los de As2 deben saber que hacer ya que es casi lo mismo..
El sensor y el sensor2 es un movieClip que dentro contiene 4 movieclips como "Solapas" estas son las que verifican los cuadros de los lados..
Aqui no hay problema..el pobrema es que luego yo asigno al cuadro la misma funcion...
que se llama Ver y dentro del parentesis va un numero que lo identifica...Entonces vuelve a correr.. Es simple en si eso..Pero no me deja asignarle el mismo for al cuadro nuevo..si no que otro entonces...tengo que agregar muchos For para que la extension de los cuadros sea mas larga.. Hasta ahora los cuadros solo pueden buscar hasta 6 cuadros de distancia ya que solo hay 6 for
EN FIN!! Diganme como ahorrarme este engorroso trabajo porfavor:
Código :
function ver(o:Number){
for(var P:Number=0;P<clip.length;P++)
{
sensor.x=clip[o].x // Pocisiono el Censor
sensor.y=clip[o].y
if(clip[P].hitTestObject(sensor) && colorA[P]==colorA[o]){ // Verifico que este en contacto con el Sensor
for(var s:Number=0;s<4;s++){
sensorA=sensor.getChildAt(s);
if(sensorA.hitTestObject(clip[P])){ //Si es que lo esta recoremos las 3 solapas del sensor y verificamos cuales cuadros estan junto...
clip[P].play();
ver2(P); // Le asginamos la misma Funcion..pero debe ser otra
!!!
clip[P].removeEventListener(MouseEvent.CLICK, dal);
}
}
}
}
}
function ver2(o:Number){
for(var P:Number=0;P<clip.length;P++)
{
sensor2.x=clip[o].x
sensor2.y=clip[o].y
if(clip[P].hitTestObject(sensor2) && colorA[P]==colorA[o]){
for(var s:Number=0;s<4;s++){
sensorA=sensor2.getChildAt(s);
if(sensorA.hitTestObject(clip[P])){
clip[P].play();
ver3(P);
clip[P].removeEventListener(MouseEvent.CLICK, dal);
}
}
}
}
}
function ver3(o:Number){
for(var P:Number=0;P<clip.length;P++)
{
sensor2.x=clip[o].x
sensor2.y=clip[o].y
if(clip[P].hitTestObject(sensor2) && colorA[P]==colorA[o]){
for(var s:Number=0;s<4;s++){
sensorA=sensor2.getChildAt(s);
if(sensorA.hitTestObject(clip[P])){
clip[P].play();
ver4(P);
clip[P].removeEventListener(MouseEvent.CLICK, dal);
}
}
}
}
}
function ver4(o:Number){
for(var P:Number=0;P<clip.length;P++)
{
sensor.x=clip[o].x
sensor.y=clip[o].y
if(clip[P].hitTestObject(sensor) && colorA[P]==colorA[o]){
for(var s:Number=0;s<4;s++){
sensorA=sensor.getChildAt(s);
if(sensorA.hitTestObject(clip[P])){
clip[P].play();
ver5(P);
clip[P].removeEventListener(MouseEvent.CLICK, dal);
}
}
}
}
}
function ver5(o:Number){
for(var P:Number=0;P<clip.length;P++)
{
sensor.x=clip[o].x
sensor.y=clip[o].y
if(clip[P].hitTestObject(sensor) && colorA[P]==colorA[o]){
for(var s:Number=0;s<4;s++){
sensorA=sensor.getChildAt(s);
if(sensorA.hitTestObject(clip[P])){
clip[P].play();
clip[P].removeEventListener(MouseEvent.CLICK, dal);
}
}
}
}
} 