Anuncios Google

[LUA] Sobre ralentizaciones

Desde que empecé a hacer juegos en Lua por mi cuenta, he tenido que ingeniármelas para combatir las ralentizaciones causadas por los gráficos, pero al día de hoy ya no las soporto más xD.

Me gustaría saber, cuál es la principal causa de este problema, y una posible solución. ¿Acaso es el procesador? ¿Tal vez es la memoria? ¿O simplemente es problema del intérprete? ¿Existe alguna solución?

Tal vez si soy más específico, más ayuda obtenga. Verás, tengo en pantalla 16 imágenes no más de 100px de ancho ni de alto, y estoy imprimiendo 4 palabras utilizando una fuente True Type. Las imágenes están en constante movimiento, cuando la pantalla alberga los 20 gráficos, la ralentización es tremenda.

He pensado en usar sprites en forma de plantilla, pero pienso que el resultado sería el mismo, ya que los pixeles ocupados en el programa no cambiaría, liberando memoria no sirve de nada, también he puesto el CPU a 333Mhz y todo igual.

Ahí les dejo el reto, por mientras yo seguiré experimentando hasta que logre algo (O veal algún post útil aquí :P)

Saludos 


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de gabriel34067

mas sobre ralentizaciones

yo a mi pensar la flash 2 y 3 estan vacias lo unico que hago es cuando inicio el menu lua es que copie los ficheros a la flash y antes de acabar o apagar la psp el programa las borra y asi continuamente .de todas maneras esta tecnica la uso de hace mucho y nunca he tenido ningun problema dado que son de libre uso la flash 2 y 3

Imagen de CkFra

Pero

entonces de esa manera, si cada vez que sales o apagas se borran de la flash, cada vez que quieras volver a jugar tendrás que volverlo a meter... Un poco rollo no?

Imagen de Guillermo_Cornielle

Cierto

Pero talves tenga un codigo, que cada ves que el juego o aplicacion se inicie, copie los archivos necesraios a la flash XD, que locura, no se si existe un codigo asi, pero vale la pena soñar ¿no?.

Saludos. 


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Imagen de yoan03

Ojala

aparezca una solucion para la ralentilizacion para hacer juegos mas al estilo professional.

Imagen de Tanos

Gracias

Pero ya lo arreglé, muy a mi manera, como siempre con métodos salidos de una caverna.

Lo que hice fue aumentar la velocidad con que se movían las imágenes, tratando de igualar el movimiento sin ralentización, y voilá como sin nada.

Un saludo coders

Imagen de trom_us

deja te cuento..

pues nada, que despues de matarme un rato hace como 5 meses....

resulta que lua(el original)  tiene la funcion System.wday() que me dava el dia de la semana, pudiendo usar asi una matriz para darle el nombre a ese dia dia[system.wday]....

...entonce lo borre....(eso hace 5 meses)

 

...muy hoy... con luahm7, dicha funcion de lua, ya no sirve, pues me da simpre juevez.... que contras!!!.

 

pues tuve que recurrir a lo arcaico... y si, ya tengo nuevamente...el dia exacto de hoy,....pero que crees, despues de volver a hacer cuentas de aqui para alla, recorde... que ya lo habia echo en otro programa , y que estaba aun mejor, pues iba para arriba y para abajo...dandome asi el nombre del dia del 5 de marzo del 1745, o el 7 de junio del 2030...etc... pero quedo ok.

en otras palabras, porque no poner la parte del codigo que te da problemas para detectar la falla o la manera de optimizarlo....

 

repito...solo pinta donde necesites, lo demas dejalo asi...

 

Imagen de Tanos

Lo he intentado de muchas formas

PEro creo que mi splución cavernaria es la mejor. El movimiento lo doy de una forma sencilla:

mover = 1

if mover == 1 then

imagenx 0 imagenx + 1

end

Bastante simple, también he intenatdo con For, y la ralentización es la misma. Con trigonometría va mejor, pero ni idea de como hacer las colisiones :S

Saludos

Imagen de Guillermo_Cornielle

Bueno

Por que no tratas de usar el metodo que te diej, bueno talves te haya funcionado. Pero nada menos mal que ya lo solucionaste.

Saludos. 


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Imagen de Tanos

Tu método

Tu método, no te ofendas, no hace lo que quiero xD.

Lo que tu hiciste fue mover la imagen a las coordenadas 490 * 272, o sea, fuera de la pantalla, es por eso que ya no tuviste ralentizaciones.

Saludos

Imagen de Guillermo_Cornielle

a ver

Pues tuve un problema asi y era por las dimensiones de las imagenes de fondo, osea tenia una imagen de fondo que era de 480x272, entonces al yo querer mostrarla en el psp osea dibujarla, en ves de poner las dimensiones de la imagen ponia 0* 0 en ves de 480*272 que son las reales, y se me relentizaba y lo que hice fue poner los pixeles reales de la imagen osea 480*272 y listo se movi perfectamente.

 

espero que me hayan entendido, no soy tan experto, pero ya me he topado con esa situación, al menos de esa forma

Saludos

 


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Imagen de gabriel34067

como acelerar en lua

 

bueno yo mis programas lua van follados,pero es que los sprites y musicas y demas los cargo desde la flash2

las ralentizaciones es cuando cargar tras carga de la memory stick(que es lenta) de un sprite en movimiento,eso ocurre cuando tu declaras el comando

bichomalo =Image.load("sprites/1.png")

lo suyo es:

bichomalo =Image.load("flash2:/sprites/1.png")

 te aseguro que notaras la diferencia.

 

asi si lo cargas desde la flash2 que es de libre uso ganas casi un 50% de velocidad 

 

 

Imagen de pipagerardo

flash2

Pues yo lo que hago es leer todos sonidos y fotos que voy ha usar durante el juego antes de empezar a jugar hasta el límite de la memoria de la PSP. Vamos que en la PSP classic son unos 30 megas para datos, pero las imágenes ocupan demasiado si las metes en memoria descomprimidas, hay una alternativa para cargar una foto en la memoria sin descomprimir y luego cuando la quieras usar la descomprimes...

La cargamos en memoria con :
jpegFile = io.open("test.jpg", "rb")
data = jpegFile:read("*a")
jpegFile:close()

Y cuando la queramos usar:
image = Image.loadFromMemory(data)

Y así la tenemos en la memoria ocupando lo minimo y la descomprimimos cuando la queramos usar.

 

Imagen de CkFra

Ya claro

Pero es muy arriesgado meter archivos en la flahs simlpemente para conseguir velocidad...

Siempre habrán alternativas para que no hayan ralentizaciones.

Simplemente con el hecho de meter algo en la flash, los users se van a echar para tras :S

Imagen de trom_us

aver

lo mas que he visto, son de 20 a 25 imagenes por segundo de 174x146, creo , ya no me acuerdo en estos momento, tal vez tu problema sea el efecto.

 

veras, me tope con un problema parecido, dije "me lleva, asi no me sirve", y te dire que ami no me va eso, asi que tuve que buscar una solucion.

en mi caso.

si hacia operaciones continuas de vuelta x buelta, los graficos se cuatrapiaban, les tuve que poner un contador del siguiente tipo.

 

timer=0

while 

if timeron=1 then

 timer=1+1

end

if timer=2 then

ejecutar operacion que me causaba el problema, algo asi

timer=0 

end 

if ciertaopcion=true then

  timeron=1

etc, etc.. 

end 

 end

 

en otras palabras, el problema parecia que no se podia, o que alentaba el sistema, pero asi se resolvio. no exactamente, pero esa es la idea. todo pasa tan rapido, que no te das cuenta.

una recomendacion, y es que nose como usas las fuentes.  ni las imagenes.

te recomiendo NO imprimas todo en pantalla, truco que muchos no usan.

es decir, si no lo necesitas, no lo pintes, solo pinta lo que necesitas.

es decir que independiente mente de los datos que vayas a presentar, hay que buscar la forma de optimizar eso que solo necesitas, no es facil, pero te dejo un ejemplo mas grafico:

pincha aqui  <--- pero sigue leyendo

si logras entender el codigo, veras que tecnicas en mi caso use yo.

digo si logras, porque se requiere no solo de saber el lenguaje, sino de entender los revoltijos, porque soy programador si, pero no soy ni estructurado, no sigo reglas, yo a lo que te trunje chencha, sino me se alguna funcion, por mas que esta ya exista, la reinvento. pero de todos modos ¿quien entiende los codigos?, ni yo mismo me entiendo, por ser muy desordenado. XD

dejate un link a lo que estas haciendo, para la proxima, asi en mi caso tratare de ayudarte. (opcional)

Imagen de pipagerardo

Relentizaciones

Las funetes de texto son tremendamente lentas. Yo solo las uso en los menús pero nunca durante el juego porque lo relentizan. También son tremendamente lentas las operaciones con pixels en LUA. Y las funciones en 3D tampoco son nada del otro mundo...

Es lo que hay... 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.