Comunidad de diseño web y desarrollo en internet online

Problema de colisión en movimiento (ActionScript2)

Citar            
MensajeEscrito el 04 Dic 2016 01:57 am
Bueno haré esto lo más rápido posible
Hagan de cuenta que tengo dos objetos (PERSONAJE, OBJETO)
Tengo ya programado que el OBJETO aparezca en cualquier punto del eje X, y a partir de ese punto vaya cayendo desde arriba siguiendo el eje Y, por lo tanto va a estar en constante movimiento en el eje Y.
Hasta abajo hay un personaje que tiene que evitar al OBJETO, y si el PERSONAJE toca el OBJETO, pierde...
Ahora, el problema es... que código se usa? considerando que el OBJETO esta en movimiento y el PERSONAJE también (el PERSONAJE es controlado por el usuario y solo se mueve en el eje x), he intentado diferentes códigos similares a este:

if (_root.PERSONAJE.hitTest(_root.OBJETO))
{gotoAndPlay(30);}

Pero ninguno funciona y hace lo que quiero... quisiera saber si alguien tiene la respuesta o sugerencia, gracias de antemano

Por emiliano98mx

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Dic 2016 04:28 pm
Si bien hitTest es la respuesta obvia a una colisión, en los juegos de acción los FPS inciden directamente en si la colisión es detectada o no. Considera hacer esto:

- Crea un loop que chequee colisiones sobre todos los elementos que caen (tienen que estar en una cola y reutilizar los elementos)
- El personaje tiene una altura (limite e Y): tienes que chequear solamente los elementos que estén por debajo de ese valor en Y
- El personaje tiene una posición en X (es un vector en realidad, tiene una posX minima y una maxima que corresponde a su ancho), aquellos elementos que esten en posición Y que se debe verificar, hay que chequearlos contra la posición X
- Lo anterior tiípicamente tiene una estructura similar a esta

Código ActionScript :

for(var i=0; i<elementos.length; i++){
  var target = elemento[i]
  //el alto del personaje, corresponde a la posición en Y de la punta del gráfico
  if(target._y<altoPersonaje){
     //asumo el punto de anclaje del gráfico coincide con el borde izquierdo
     if(target._x>personaje._x && target.x<personaje._x+personaje._width){
        //colision !!
     }
  }  
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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