Comunidad de diseño web y desarrollo en internet online

Scrip para que 2 movieclips no se traspasen

Citar            
MensajeEscrito el 17 Dic 2009 02:09 am
Hola que tal les escribo para hacer la siguiente consulta de actionscrip 2.0.

Quisiera saber que codigo utilizar y de que manera disponerlos para lograr que 2 elementos controlados por el teclado eviten traspasar uno tras de otro. Para que se entienda mejor el asunto, se trata de un juego de pelea, donde 2 movie clip contienen la programacion necesaria para lograr que en ciertos movimientos afecten la vida del otro jugador. Pero tengo el problema de que se traspasan, y mas bien deberia obstaculizar el paso el otro jugador. Al igual este codigo que necesito lo aplicaria a las paredes para que no se salga de la pelicula swf. Gracias...

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Dic 2009 02:18 am
Lo que buscas es una función llamada hitTest, que te permite evaluar si dos objectos colisionan entre sí para ejecutar código según sea el caso. Ejemplo, cuando el hitTest ocurre, hacer saltar los dos objectos en direcciones contrarias.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 18 Dic 2009 10:37 pm
Hola hernan gracias por la respuesta amigo, te explico... utilice este codigo en un clip de pelicula:

Código ActionScript :

onClipEvent (enterFrame) {
   if (this.hitTest(_root.wall5)) {
      this._x += 10;
   } else {
      this._x += 0;
   }
}


Donde wall5 es otro clip que lo coloque a un lado, es decir una pared, esto hace que cuando el clip toque a wall5 el se devuelve 10 pixeles (supongo q son pixeles) de esta manera cada ves q lo toca se devuelve, y al lado contrario si quiero que se regrese el codigo es el mismo pero con valor negativo -

Okey pero pasa que yo no quiero q se devuelva, sino que sencillamente no pueda traspasarlo, que sea como una pared, me explico? que no ocurra ninguna accion, ya que con el codigo que tengo me pasa que de tanto intentar el clip pasar al otro lado finalmente lo hace, hay una especie de error hay, entonces me quiero evitar esos molestos rebotes. Eso es todo, ojala me puedas ayudar.

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2009 01:09 am
porfa necesito ayuda aqui!!!!!!!!!!!!!

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2009 01:28 am
Pues no lo hagas devolverse, simplemente sea cual sea el código que estas utilizando, anulalo en el caso de que el hitTest devuelva true.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 22 Dic 2009 02:18 am
ehhhh.... bicho, eso suena a condicional if, la verdad es q no se como hacer eso :lol: si me dices pues bien, no creo q tampoco sea tan complicado, jeje y disculpa la molestia.

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2009 04:00 am
Pero si ya lo estas usando:

Código ActionScript :

  if (this.hitTest(_root.wall5)) { 
      this._x += 10; 
   } else { 
      this._x += 0; 
   } 


Lo único que tienes que hacer es editarlo o usarlo de otra forma. El If es bastante sencillo solo plantea la siguiente lógica:

Código ActionScript :

if(Comprobación Lógica){
     que hacer si se cumple
}else{
     que hacer sino se cumple
}


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 22 Dic 2009 04:15 am
Ok mi pana me quedo claro, gracias... :)

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2009 04:31 am

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2009 06:18 am
jajaja porque lo haces rebotar, no es la mejor forma. De todas formas si es un escenario, te conviene evaluar su posición y no el impacto por hitTest.

O sea... Sabes que no quieres pasar de tal coordenada en X, solo haz que el personaje no pueda pasar, si lo hace, simplemente dejalo en la posición máxima de alcance, de esta forma, jamás podrá pasar la pared.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 22 Dic 2009 01:59 pm
ehhh??... quede asi :? esa solucion podria ser, pero ni idea de como hacerlo, el espacio de trabajo es de 700x400.

Se me ocurrio lo de las paredes porque es lo que mas sencillo encontre :P

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2009 08:00 pm
if(this._x >= 700){
this._x = 700
}
es lo mas sencillo U_U yo planeaba poner eso al principio pero crei que no buscabas esto :I. Ya con eso nadamas pones los limites en y y el x que te falta

Por el davo29

253 de clabLevel



Genero:Masculino  

Chihuahua :D!

msie8
Citar            
MensajeEscrito el 23 Dic 2009 01:00 am
Ok amigo gracias me sirvio perfectamente y creeme que aunque aveces lo ves muy facil ayuda muchisimo. ^^

Por sirstryker

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Dic 2009 01:01 am
Gracias tambien a el pana Hernan por la ayuda, ya solucione ese problema...

Por sirstryker

12 de clabLevel



 

firefox

 

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