Comunidad de diseño web y desarrollo en internet online

Problema con Hittest

Citar            
MensajeEscrito el 07 Abr 2009 03:40 pm
A ver si me puedo explicar
Tengo un panel donde quiero colocar varias letras ej: A B C
Quiero que el visitante pueda colocarlas en cualquier orden ej: C B A
Pero que solo si las coloca en el orden correcto ej: A B C le de correcto y pase a otro nivel.
He probado de todo y nada me funciona.
Estoy trabajando con Flash 8 y actionscript2
Por favor ayudenme que ya no se que mas hacer.
Muchisimas gracias.

Por Ronsoca

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Abr 2009 04:35 pm
Les pongo el código que estoy intentando y que no me sale (incluso me da erro) a ver si me pueden ayudar.

onClipEvent(enterFrame){
this.onPress=function()
{this.startDrag(); }
this.onRelease=function()
{ if(this.hitTest(_root.habitacion.G_btn))
this._visible=false;
_root.habitacion.L2_esc._visible=true;
_root.Lpegada=false;
}else if (this.hitTest(_root.habitacion.L_btn)) {
this._visible=false;
_root.habitacion.L1_esc._visible=true;
_root.Lpegada=true;
}

{
{this.stopDrag();
this._x=-261;
this._y=-8.5;
}
}
}


Sinceramente no se que estoy haciendo mal.

Por Ronsoca

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Abr 2009 05:02 pm
Solucion

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 07 Abr 2009 05:04 pm
var a:Boolean = false;
var b:Boolean = false;
var c:Boolean = false;
inix = a_mc._x;
iniy = a_mc._y;
a_mc.onPress = function() {
startDrag(this);
};
a_mc.onRelease = function() {
stopDrag();
if (a_mc.hitTest(clip1)) {
a_mc._x = clip1._x;
a_mc._y = clip1._y;
a = true;
}
if (a_mc.hitTest(clip2)) {
a_mc._x = clip2._x;
a_mc._y = clip2._y;
a = false;
}
if (a_mc.hitTest(clip3)) {
a_mc._x = clip3._x;
a_mc._y = clip3._y;
a = false;
}
if (a, b, c == true) {
trace("bien");
}
};
//
b_mc.onPress = function() {
startDrag(this);
};
b_mc.onRelease = function() {
stopDrag();
if (b_mc.hitTest(clip1)) {
b_mc._x = clip1._x;
b_mc._y = clip1._y;
b = false;
}
if (b_mc.hitTest(clip2)) {
b_mc._x = clip2._x;
b_mc._y = clip2._y;
b = true;
}
if (b_mc.hitTest(clip3)) {
b_mc._x = clip3._x;
b_mc._y = clip3._y;
b = false;
}
if (a, b, c == true) {
trace("bien");
}
};
//
c_mc.onPress = function() {
startDrag(this);
};
c_mc.onRelease = function() {
stopDrag();
if (c_mc.hitTest(clip1)) {
c_mc._x = clip1._x;
c_mc._y = clip1._y;
c = false;
}
if (c_mc.hitTest(clip2)) {
c_mc._x = clip2._x;
c_mc._y = clip2._y;
c = false;
}
if (c_mc.hitTest(clip3)) {
c_mc._x = clip3._x;
c_mc._y = clip3._y;
c = true;
}
if (a, b, c == true) {
trace("bien");
}
};
//
usa eso es mejor y no ocupa bug aca las letras A,B,C son a_mc,b_mc,c_mc y los cubos con los que aras hitTest son clip1,clip2,clip3

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 07 Abr 2009 05:06 pm
Obiamente cambia el trace(TRACE("BIEN");) por el evento.

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 07 Abr 2009 05:16 pm
Lo voy a probar, gracias por contestar, Luego te cuento el resultado

Por Ronsoca

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Abr 2009 05:19 pm
Obiamente cambia el trace(TRACE("BIEN");) por el evento.

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 07 Abr 2009 05:29 pm
Nada, no me sale.
No se bien donde tengo que colocar el código.
Tengo una pelicula principal.
Un movie clip llamado "habitacion" donde coloque los clip 1, 2 y 3
Luego tengo otro movieclip llamado "inventario" donde coloque los movieclips a_mc, b_mc y c_mc
La verdad no se donde colocar el código que me diste para que funcione bien.

Por Ronsoca

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Abr 2009 01:22 am
mira el problema es que el codigo que te puse es para 3 clip con los que aras el hit ademas de las 3 letras aora que me especificaste mejor los componentes que ocupas dejame que lo modifique a tu nesesidad aora al ratito te posteo la solucion.

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 08 Abr 2009 01:53 am
Bueno, te cuento que me sale bien todo lo del hittest y que se puedan colocar en todas las casillas y demás.
El problema es el evento final.
Cuando compruebo las tres variables me sucede que si solo la última está correcta igual me salta el evento.
Alguna idea de lo que estaré haciendo mal.
Les pongo el código tal cual como lo tengo en este momento.
Muchas gracias por su ayuda hace ya un buen rato que estoy con esto y no me sale.

var a:Boolean = false;
var b:Boolean = false;
var c:Boolean = false;
inix = a_mc._x;
iniy = a_mc._y;
a_mc.onPress = function() {
startDrag(this);
};
a_mc.onRelease = function() {
stopDrag();
if (a_mc.hitTest(clip1)) {
a_mc._x = clip1._x;
a_mc._y = clip1._y;
a = true;
}
if (a_mc.hitTest(clip2)) {
a_mc._x = clip2._x;
a_mc._y = clip2._y;
a = false;
}
if (a_mc.hitTest(clip3)) {
a_mc._x = clip3._x;
a_mc._y = clip3._y;
a = false;
}
};
//
b_mc.onPress = function() {
startDrag(this);
};
b_mc.onRelease = function() {
stopDrag();
if (b_mc.hitTest(clip1)) {
b_mc._x = clip1._x;
b_mc._y = clip1._y;
b = false;
}
if (b_mc.hitTest(clip2)) {
b_mc._x = clip2._x;
b_mc._y = clip2._y;
b = true;
}
if (b_mc.hitTest(clip3)) {
b_mc._x = clip3._x;
b_mc._y = clip3._y;
b = false;
}
};
//
c_mc.onPress = function() {
startDrag(this);
};
c_mc.onRelease = function() {
stopDrag();
if (c_mc.hitTest(clip1)) {
c_mc._x = clip1._x;
c_mc._y = clip1._y;
c = false;
}
if (c_mc.hitTest(clip2)) {
c_mc._x = clip2._x;
c_mc._y = clip2._y;
c = false;
}
if (c_mc.hitTest(clip3)) {
c_mc._x = clip3._x;
c_mc._y = clip3._y;
c = true;
}
if (a, b, c == true) {
_root.habitacion.puertaH.gotoAndPlay(1);
}
};

Por Ronsoca

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Abr 2009 02:27 am
Hola mira has esto crea 3 capas capa 1= fondo capa 2= letras capa 3 = acciones,
en capa 3 pones esto :

y pon 1 fotogramaClave vacio
te tendria que quedar en la capa 3, 2 fotogramas claves
en la capa 2, 1 fotograma clave
y en la capa 1 , 1 fotograma clave

stop();
var a:Boolean = false;
var b:Boolean = false;

//
clip1.onPress = function() {
startDrag(this);
};
clip1.onRelease = function() {
this.stopDrag();
if (clip1.hitTest(cubo_mc)) {
clip1._x = cubo_mc._x;
clip1._y = cubo_mc._y;
a = true;
}
if (clip1.hitTest(cubo2_mc)) {
clip1._x = cubo2_mc._x;
clip1._y = cubo2_mc._y;
a = false;
}
if (a, b == true) {
gotoAndStop(2);
}
};
//
clip2.onPress = function() {
startDrag(this);
};
clip2.onRelease = function() {
this.stopDrag();
if (clip2.hitTest(cubo_mc)) {
clip2._x = cubo_mc._x;
clip2._y = cubo_mc._y;
b = false;
}
if (clip2.hitTest(cubo2_mc)) {
clip2._x = cubo2_mc._x;
clip2._y = cubo2_mc._y;
b = true;
if (b == true) {
}
}
if (a, b == true) {
gotoAndStop(2);
}
};

en la capa 2 pon esto :

2 ltras que ceran MC letra A = clip1 letra B = clip2

y en la capa 1 pon esto:

2 cubos que seran MC cubo_mc y cubo2_mc

obiamente tengo mucho travajo por lo que no tengo tiempo para la letra C te pido disculpa pero ce que con este ejemplo vas a poder hacer el codigo del C usando eso como guia espero te sirva.

Por venecia

Claber

134 de clabLevel



 

2007

safari
Citar            
MensajeEscrito el 12 Abr 2009 04:32 am
lo siento mucho, pero tengo una duda paresida y no quise hacerla en otro post porque aqui vi a unos inteligentes haha y pues estoy seguro que incluso el que tenia duda en este post me puede ayudar en esto pues esta facilisomo:

quiero crear un cuadrado que sea para probar el hittest (lo duplicare 8x8 veces para un tablero de ajedrez)
quiero que las 12 piesas de ajedres (un peon, caballo, bishop, rey y reyna x 2 colores) puedan moverse con startdrag y al soltar el mouse se suelten si estan en un cuadrito y que queden exactamente en el centro. no me immporta si es un peon que se quiere mover saltando piesas jeje no me importa, con tal de que al soltarlo se situe en el centro de este cuadrito...

y si es posible... que si hay otra piesa ensima que la destruya,.... alomejor no se puede pero bueno con que me ayduen a eso de que se ponga en el centro del cuadro con startdrag y eso del hit test que ya intente y no me sale....
vi un tutorial que decia por ejempplo:
x []
y si arrastras la x y no queda en el cuadro se regresa, sino se queda en el centro

alomejor pongan eso para que si agarran la piesa y lo sueltan fuera del tablero que se regrese :D

gracias puse esta pag como favoritos para dar otra vuelta o mejor aun envienme si quieren a este correo que no uso pero que lo estare vigilando
[email protected]

gracias :D!

Por pokpok

4 de clabLevel



 

msie7

 

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