Comunidad de diseño web y desarrollo en internet online

Detectar colisiones en un movieClip

Citar            
MensajeEscrito el 27 Oct 2010 06:00 pm
Saludos colegas, ando haciendo un juego, tengo un personaje que se mueve con las flechas del teclado, el escenario esta conformado por un movie clip ("hit") que es una especie de laberinto, mi personaje no pasa x las paredes, eso quedo muy bien, logre agregar un par de enemigos que siguen a mi personaje, pero no logro hacer que los enemigos no pasen sobre las paredes del laberinto, tengo un codigo que hice para un enemigo que empece a usar y resulta asi:

Código ActionScript :

movespeed=2

onClipEvent (enterFrame) {
   if (this.hitTest(_parent.wall3)) {
      this._y -= movespeed;
   } else {
      this._y += 0;
   }
   if (this.hitTest(_parent.wall2)) {
      this._y += movespeed;
   } else {
      this._y -= 0;
   }
   if (this.hitTest(_parent.wall1)) {
      this._x += movespeed;
   } else {
      this._x -= 0;
   }
   if (this.hitTest(_parent.wall4)) {
      this._x -= movespeed;
   } else {
      this._x += 0;
   }
}


Los movieClips: wall1, wall2, wall3, wall4 estan alrededor del enemigo y cada uno como pueden ver en el codigo hace que se detenga, pero resultaria traumatico el agregar cada accion a los enemigos de todas las paredes de un escenario, quisiera preguntarles si hay forma de que el mapa ("hit") que usa mi personaje principal, tambien haga que los enemigos se detengan?, hice varias pruebas como:

Código ActionScript :

if (this.body.hitTest(_parent.hit.x, _parent.hit.y,)) {
      this._x += movespeed;
   } else {
      this._x -= 0;
   }


Muchas gracias adelantadas, espero que me puedan echar la mano.

Saludos¡¡¡

Por dsintek

6 de clabLevel



 

Guadalajara

firefox
Citar            
MensajeEscrito el 29 Oct 2010 03:48 pm
Está bien tu apprach, pero a poco que avances en tu juego verás que es inviable usar hitTest por cuestiones de performance. Tu juego es un candidato a usar Tiles y un mapa, en AS3 http://gotoandplay.it/_articles/2007/10/tileLayout.php
En el mismo sitio hay uno de AS2

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Oct 2010 10:56 pm
Probaste con algo asi
lo implemente en algo que esperaba ser un juego con buenos resultados

Código ActionScript :

//pega izq 
while(mcSuelo.hitTest(cabeza._x+cabezaPIzq-2,cabeza._y,true))
{
cabeza._x++;
cabeza.dx=0;
}
while(mcSuelo.hitTest(mc._x+cabezaPIzq+0,mc._y+cabezaPBajo/3,true)){
cabeza._x++;
cabeza.dx=0;
}


cabezaPizq y cabezaPBajo son arrelgos que deveras darle segun el tamaño de ti Mc.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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