Comunidad de diseño web y desarrollo en internet online

¿Problemas al comparar valores negativos?

Citar            
MensajeEscrito el 09 Oct 2008 12:05 am
Buenas a todos. Aviso es mi primer contacto con Flash y ActionScript. :) ... asi que, clasico, tengo un problema basico.

Estoy haciendo un rompecabezas partiendo de este ejemplo de Teseo: http://www.cristalab.com/tips/35392/rompecabezas-y-puzzles-con-imagenes-en-actionscript.html

Le hice un par de modificaciones. Una de ellas es que mi "area de armado" esta definida (no empieza en 0,0 como en el ejemplo), para ello modifique estas lineas:

Código :

pz[n]._x = pt[n].x; pt[n].x = pz[n]._x + coordenada_en_x;
pz[n]._y = pt[n].y; pt[n].y = pz[n]._y + coordenada_en_y;

Como sea, todo funciona correctamente, salvo cuando compruebo que las piezas esten en su lugar para determinar si el juego ha terminado. Lo raro es que realizo un trace() de los valores y resulta que si son iguales :wtf: ... solo se me ocurre que pueda ser porque dichos valores resultan negativos.

El codigo es el siguiente:

Código :

// Comprobando si se ha completado el jueguillo este ...
for (tt=0; tt<tpz; tt++) {
   if((pz[tt]._x == pt[tt].x) && (pz[tt]._y == pt[tt].y)) {
         ++cnt;
      } else {
         trace("Falla pza "+tt+" | "+pz[tt]._x+" vs "+pt[tt].x+" | "+pz[tt]._y+" vs "+pt[tt].y);
      }
   if(cnt==tpz) {
      trace("Se fini");
   }
}

Que me resulta lo siguiente (cuando se ha completado):

Código :

Falla pza 0 | -9.3 vs -9.3 | 179.25 vs 179.25
Falla pza 3 | -9.3 vs -9.3 | 247.55 vs 247.55
Falla pza 6 | -9.3 vs -9.3 | 315.85 vs 315.85

... de las 9 piezas que tengo, todas son la de la columna izquierda ... pero como sea, la igualdad esta, ¿que sucede entonces?... ¿Alguien que me guie a la luz?. :meditar:

Aprovecho: ¿como hacerle para que al seleccionar la pieza traerla "al frente"? :crap:

Ojala me puedan ayudar. Gracias de antemano, seguro nos veremos por aca :-P (perdonen la falta de acentos)

Por pixradio

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2008 12:22 am
Pues el compilador de flash puede comparar numeros negativos sin problema, trace( -179.25 == -179.25 ) es true, existe un valor de flash, undefined, cuando comparas algo con undefined es falso, excepto undefined == undefined, tienes que ver si tus Arrays te regresan un objeto o MovieClip existente, suele pasar, por tanto las propiedades _x y x son undefined.

para pasar un clip al Top puedes usar clip.swapDepths( clip._parent.getNextHighestDepth() ); o jugar con estas dos funciones para colocar tu clip en el nivel que deseas.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

msie7
Citar            
MensajeEscrito el 09 Oct 2008 12:56 am
Puedes ver que el resultado es de un trace() con exactamente los mismos valores de la forma que se comparan y son iguales. Loas piezas --entiendo-- con MovieClips que se definen en:

Código :

 pz[n] = createEmptyMovieClip("pz"+n, n+1); 

... y nada, ningun trace() me da undefined, ademas que si no estarian definidos las piezas no se aparecerian ni se moverian.

Hice la comparacion por separado, primero comparando los valores positivos, luego los negativos, es en esta segunda donde falla:

Código :

cnt=0;
for (tt=0; tt<tpz; tt++) {
   if(pz[tt]._y == pt[tt].y) { // Positivos
      if(pz[tt]._x == pt[tt].x) { // Negativos
         ++cnt;
      } else {
         // Quiere decir que si son los negativos
         trace("Falla 2da con "+tt+" | "+pz[tt]._x+" vs "+pt[tt].x);
      }
   } else {
      trace("Falla 1ra con "+tt+" | "+pz[tt]._y+" vs "+pt[tt].y);
   }
}

Lo que me resulta:

Código :

Falla 2da con 0 | -9.3 vs -9.3
Falla 2da con 3 | -9.3 vs -9.3
Falla 2da con 6 | -9.3 vs -9.3

... entonces, como que si es ese signo menos ¿no? :-/

Gracias por el comentario. Pruebo el swapDepths(), si no funca creo otro tema :-).

Por pixradio

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2008 01:16 am
Lee este post y prueba a ver si esto es lo que te sucede.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 09 Oct 2008 04:14 am
elchininet, comparto la opinion del compañero del otro post: eres un crack! :ninja: Era eso; problemas con los decimanles, no con los valores negativos... estaba perdido. Gracias!.

Gracias tambien LongeVie, lo que me dijiste para poner el clip por encima igual me funciono.

Ahora, a seguir trabajando :latigo:. Nos vemos.

Por pixradio

1 de clabLevel



 

firefox

 

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