Comunidad de diseño web y desarrollo en internet online

que la animacion se vea entrecortada pero no lenta

Citar            
MensajeEscrito el 22 Jul 2008 06:57 am
hola estoy programando un juego de disparos multijugador y resulta que cuando por cualquier motivo la animacion del juego se ve lenta por unos segundos , el personaje camina mas lento, esto es normal en flash, pero yo realmente necesito cambiar eso por que se produce una descoordinacion de los personajes en el ecenario cuando se pone lento o cuando una pc es mas rapida el personaje camina levemente mas rapido y eso es injusto dentro de las reglas del juego.
Probe cambiar todos los bucles de animaciones de onEnterFrame a setInterval pero sigue haciendo lo mismo, probe ponerle UpdateAfterEvent() dentro del setInterval , que creo que hace que la animacion sea mas fluida pero no me sirvio tampoco, yo lo que quiero es que si se pone lento el juego por cualquier motivo , que en vez de que el personaje camine mas lento , que se vea entrecortada la animacion, pero que la velocidad del personaje siempre sea la misma. Es decir no me importa que se vea mal la animacion si el pc es lento, lo que me importa es que la animacion de un jugador no sea mas rapida que la de otro jugador dentro del juego.
Si no hay una solucion para esto es que actionscript es un lenguaje muy pobre para muchas cosas.
¿se les ocurre algo? saludos!

Por fermmm

Claber

122 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Jul 2008 11:32 am
Posiblemente tu código no esté optimizado. Haz un Ctrl+Alt+Delete y chequea la carga de la CPU cuando se pone lento. ¿Que es lo que pasa en ese momento? Muchos onEnterFrame, muchos setInterval, mucho hitTest, mucho bucle? En los juegos es donde hay que ser especialmente cuidadoso con la optimización, ya que como bien has dicho, AS no es un script especialmente rápido

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2008 12:17 pm
mira te explico , lento lento no va , va perfecto , el problema es que por ejemplo si tienes 20 programas funcionando y consumiendo memoria , puede , que te funcione lento, por razones ajenas al juego. Eso hace que el personaje camine mas lento , lo cual no tiene que pasar , por que no es justo que por que yo tengo varios programas funcionando mi personaje camine mas lento , es algo muy cutre. En todo caso que el juego se vea entrecortado si tengo la pc muy cargada. Esto es grave por que afecta al juego multijugador, los demas ven a los que tienen pc mas cargada o mas lenta caminar mas lento.
Tengo entendido que la solucion pasa por mexclar un setInterval con un getTimer y algo asi como mover un objeto de acuerdo al tiempo transcurrido o algo asi , lei algo en ingles para as3 y estoy tratando de encontrar algo para as2, sino lo tendre que inventar yo.

Por fermmm

Claber

122 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Jul 2008 12:53 pm
Con Date, getTimer y un setInterval puedes comprobar la tardanza (y por ende el rendimiento) y hacer algo si el rendimiento no es el adecuado.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2008 12:56 pm
Estoy casi seguro que la solucion es esto:
http://flizash.com/2008/03/04/time-based-animation-in-actionscript-30/

pero no encuentro un tutorial asi en as2. Para hacerlo en as2 como seria??? es que no tengo ni idea de as3

Por fermmm

Claber

122 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Jul 2008 01:03 pm
La animación via setInterval o Timer (en caso de AS3) sufre de los problemas de rendimiento, es decir, no hay nada que evite que el rendimiento caiga si tienes la RAM agotada. Solo puedes detectarlo y avisar al usuario.
En todo caso busca por AS CPU usage o algo así si no se te ocurre como hacerlo con lo que te dije antes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Jul 2008 01:10 pm
solisarg , no entiendes mi punto mira , no me interesa que el juego tenga mejor rendimiento , el rendimiento es bueno, me interesa que cuando el rendimiento es malo , en cuanto a las animaciones, en vez de que funcionen fluidas pero a velocidad mas lenta (lo cual es normal cuando hay poco rendimiento en flash) , transcurran entrecortadas , se vea terrible , no me importa, pero que todo ocurra al tiempo que deberia entiendes?.

Por fermmm

Claber

122 de clabLevel



 

msie
Citar            
MensajeEscrito el 22 Jul 2008 01:47 pm
Para hacer cosas necesitas disponibilidad de recursos
Si no tienes recursos no puedes hacer cosas
Luego pensar que cosas hacer si no hay recursos (como no sea avisar) es complicado.
Si vez que el rendimiento cae, pasa a un onEnterFrame con posiciones absolutas en vez de un Tween. Usualmente los workarounds para falta de recursos son tam complicados que el 90% de los juegos avisan de memoria insuficiente y van tranquilamente como el culo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jul 2008 05:09 pm
si pero en un juego online jode a los demas asi que tendria que incluso echar al jugador del juego
lo que voy a hacer es basar la distancia de los objetos en movimiento con el comando getTimer despues posteo como lo resolvi

Por fermmm

Claber

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Jul 2008 05:17 pm
osea... el personaje tiene que caminar tanta distancia en tanto tiempo (se usa getTimer) de lo contrario se mueve al personaje al punto en el que tendría que estar según el tiempo transcurrido desde que empezó a caminar. Esto incluso lo puedo ejecutar en un bucle con una verificacion cada 2 o 3 fotogramas y entonces asi, aunque te funcione lento, puedes hacer que el juego no se deforme y sea bien solido en cuanto a tiempos de animación. Espero que no me consuma muchos recursos de memoria y poder hacer muchas verificaciones.

Por fermmm

Claber

122 de clabLevel



 

firefox

 

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