Anuncios Google

ralentizaciones serias (lua)

por solo poner esto:

archivo = io.open("archivos/lugar.txt","r")
lugar = archivo:read("*n")
archivo:close()

se me ha ralentizado tanto mi juego que no me reconoce las pulsaciones, osea, pulso x y se tendria que mover una imagen en pantalla, pues simplemente no se mueve :S he puesto esto:

 archivo = nil
 collectgarbage()
 screen.waitVblankStart(100)

y nada, sigue llendo lento, ¿alguna idea?


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 rubenelportero

encontre el problema

el muñeco manejado por la manica se mueve si la imagne "fondo" pesa menos de 45 kb, lo que me hace pensar que sobrecargo la ram, y eso que solo hay un timer en marcha, lectura de ficheros, y una fuente cargada, que si la quito, sigue igual, sin ir, quien lo quiera le paso el homebrew y que esperimente en su psp loque pasa, ¿alguna idea? agradeceria mucho

salu2!

Imagen de rubenelportero

aunque...

tiene que ver algo que la funcion "leer"está en el bucle while true do?, esque si no lo pongo no me funciona...

function leer()
archivo = io.open("archivos/lugar.txt","r")
lugar = archivo:read("*n")
archivo:close()
if lugar== 1 then
 fondo=Image.load("imagenes/airelibre.jpg")
end
if lugar== 2 then
 fondo=Image.load("imagenes/playa.png")
end
if lugar== 3 then
 fondo=Image.load("imagenes/campofutbol.jpg")
end
if lugar== 4 then
 fondo=Image.load("imagenes/campo.jpg")
end
if lugar== 5 then
 fondo=Image.load("imagenes/templo.png")
end
end

salu2!

edito: ahora no se me ralentiza alfin!, pero ahora lo que me pasa es que no me va es la cpu!, osea, que el tio que mueve la cpu no se mueve!!! ahhhhh, antes se movia, ahora estrañamente, no se mueve... jo*er...

Imagen de pspgorrister

Esa instrucción lugar =

Esa instrucción

lugar = archivo:read("*n")

¿Que hace realmente?, veo que le pones un asterisco.

 

 

Imagen de rubenelportero

mira,

n -> lee un número -> información:read(“*n”)

a -> lee el archivo entero desde la posición actual -> información:read(“*a”)

| -> (opción por defecto) lee la siguiente línea, devuelve "nil" si es final de fichero (EOF) -> información:read(“*|”)

número - devuelve una cadena de tantos caracteres como se indique o devuelve nil si es final de fichero -> información:read(6)

 

alguna idea? salu2!

Imagen de Robione22

problema raro

yo leo y escribo varios archivos con el AF y no se me realentiza. ¿Seguro que eso es lo que casua el problema?

Imagen de pspgorrister

Para descartar que sea

Para descartar que sea problema de la lectura del archivo, prueba una cosa:

-- archivo = io.open("archivos/lugar.txt","r")
-- lugar = archivo:read("*n")
-- archivo:close()
lugar = pon_aqui_el_valor_que_sea_directamente

Comentas las lineas que leen el archivo y le pones el valor a "lugar" directamente. Si  te va igual de lento, no es por esto.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de rubenelportero

es por eso,

antes de implementarle nada, mi homebrew ya tenia directamente el valor "lugar", osea, en mi homebrew que ya está en portada, como hay 4 lugares distintos donde jugar (sólo cambia el fondo) pues para cada "fondo" tenia un diferente script lua, y ahora con esto de leer los he juntado 1, solo he puesto eso de arriba que os he dicho y 4 ifs para claro, depende de que sea lugar imprimir cierto fondo, es muy raro, pero es así

salu2!

Imagen de pspgorrister

Te puedes ahorrar el fichero

Te puedes ahorrar el fichero para leer el lugar, si lo que quieres es aparecer en un (o cinco) sitios aleatorios, create un "random"

Lugar = random(1,5)

No se si será así la sintaxis, pero la intención es devolver un entero aleatorio entre 1 y 5

 

PD: Tienes que iniciar la semilla de números aleatorios al principio del programa (no sé en Lua cómo es).


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de rubenelportero

no,

lo que quiero es que el jugador elija el lugar, bueno, ya lo sulocioné, es facil, puesto que taba un tanto sobrecargado el script y tenia que decir que si el contador es menor que 250 y mayor de 180 haga tal cosa, pos como que lo ignoraba, sólo e peusto ahora que haga tal cosa al ser mayor de 180, y cuando va por 300 lo para, contando que son milesimas ese retraso no supone mucha cosa, :P gracias por contestar

 

salu2!

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.