Comunidad de diseño web y desarrollo en internet online

Primero un play() y después un stop()...

Citar            
MensajeEscrito el 17 Dic 2009 01:11 pm
Hola!!! Tengo una duda que no puedo solucionar...

Tengo hecho un juego tipo PACMAN. El juego funciona maravillosamente. Casi me gusta más que el verdadero pacman, pero... ¡hay un problema! El player (pacman) se mueve por un laberinto y yo he añadido unas puertas y interruptores que cuando pulsas en uno de ellos, se abre la puerta que tiene el código. En el MC de la puerta he puesto 2 fotogramas: uno con la puerta cerrada y otro con la puerta rodada, simulando que está abierta. Cuando el player pase por el interruptor, he añadido un hitTest.
Lo que hace este hitTest es pasar de fotograma la puerta. El problema es que ponga lo que le ponga, un play() y en el MC un stop(), un _currentframe que detecte el fotograma y vaya al otro, un... de TODO, lo que me hace, lógicamente (no es un error), es pasar continuamente los fotogramas de uno al otro rápidamente. Ya que el player se sitúa encima durante unos segundos.

¿Podrían darme alguna idea para hacer que al colisionar (hitTest) haga un play() al siguiente fotograma y después del play() un stop()?

Gracias a todos!! :lol:

Por SilSal

87 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Dic 2009 08:29 pm
SilSal ... ¿Has hecho un pacman usando hitTest? geez, eso no se hace, deberías haber usado el algoritmo PathFinding*A... Pero bueno, al caso... Si quieres detectar el hitTest el código sería:

Código ActionScript :

if(pacman.hitTest(pared)){
   gotoAndPlay("fotograma");
}


Obviamente debes evaluar constantemente esa evaluación, quizá poniendola en una función y llamandola recurrente usando setInterval.

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 11:42 am
Haber si me explico. El pacman esta hecho en Flash y al colisionar con la pared el _x o _y del player se pone a 0. Todo lo que es un Pacman normal funciona a la perfección. Yo he añadido unos objetos especiales como cambio de velocidad de malvados, el que te hace invencible y también otro que te hace mas rápido y invencible. Eso a la perfección. También he añadido unos MC con unas paredes que simulan puertas.
En el 1 frame de ese MC la puerta esta cerrada, y en el 2, abierta y un stop en los frames. Después tengo otro MC por el laberinto que es un interruptor. Un MC de un solo frame, que es un circulo. Cuando el pacman (player) colisione con el interruptor la puerta (con nombre de instancia puerta) pasara al siguiente fotograma. Lo que sucede es que cuando el player se sitúa sobre el interruptor, tarda unos segundos a irse, y la puerta va de fotograma en fotograma, rápidamente. Lo que quiero es que si la puerta esta cerrada, cuando se coloque encima el player, se abra y no haga nada mas. El player se marcha y vuelve a pulsar, la puerta que estaba abierta se cierra y nada mas. Algo como:

Código ActionScript :

if(this.pacman.hitTest(this.interruptor)){ 
   this.puerta.play() //solo una vez y se anula, que es lo que no se hacer.
}


Gracias igualmente!!

Por SilSal

87 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Dic 2009 04:52 pm
Nadie sugiere algo.
¡¡Gracias!!

Por SilSal

87 de clabLevel



 

chrome

 

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