Anuncios Google

[SOLUCIONADO] Función tiempo en lua

Le he estado dando vueltas pero no hallo la solución.

Mi problema es que quiero que se pinte una imagen cada cierto tiempo el problema es que si lo hago con temporizadores las lineas de codigo pueden ser miles. ¿Como puedo hacer que cada 50 milisegundos se pinte una imagen?

Lo que voy ha hacer es una barra de proceso.

EDITO:

Ya lo he solucionado (gracias a el__Qat) aquí os dejo el cogigo:

--Barra de proceso de descarga en LuaHMv2 by: el__QAT--
 
--Colores--
glow_Color = Color.new(200,10,10,255)
text_Color = Color.new(255,255,255,255)
 
 
--Variables--
oldpad = Controls.read()
download_Porcentaje = 0
fastnumbers = 0
Anchura = 0
 
 
--Las imagenes necesarias--
fondo_Pantalla = Image.load("Fondo.png")
barra_Fondo = Image.load("Barra-Fondo.png")
barra_Llenado = Image.load("Llenado.png")
 
 
--Bucle Principal--
while true do
pad = Controls.read()
 
 
	 if fastnumbers < 25 then
	     fastnumbers = fastnumbers + 1
		 elseif fastnumbers >= 25 then
		     download_Porcentaje = download_Porcentaje + 1
			 Anchura = Anchura + 3
		     fastnumbers = 0
		   end 
 
	 if download_Porcentaje >= 100 then
	     download_Porcentaje = 100
		 download_State = false
	   end
	 if Anchura >= 300 then
	     Anchura = 300
	   end
 
 
--Dibujamos en pantalla la barra de proceso--
     screen.startDraw()
     screen.clear(0)
	 Image.blit(0,0,fondo_Pantalla)
     screen.print(115,18,"Barra de Progreso (LuaHMv2)",.8,text_Color,glow_Color,0)
	 screen.print(15,60,"En esta prueba intentare crear una barra de progreso para las\ndescargas, el metodo sera explicado mas adelante en un tutorial\nen la pagina http://psp.scenebeta.com.",.7,text_Color,glow_Color,0)
	 screen.print(150,140,"Descargando... ("..download_Porcentaje.."%)",.8,text_Color,glow_Color,0)
	 Image.blit(89,150,barra_Fondo)
	 Image.blit(90,151,barra_Llenado,0,0,Anchura,8)
	 screen.endDraw()
	 screen.flipscreen()
 
 
 
screen.waitVblankStart()
oldpad = pad
end 


                                                                          No cuesta nada agradecer!!!


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 DeViaNTe

Pos eso... xD

Meter las imagenes en "ruta\" o cambiar ese trozo.
Las imagenes con nombres tipo imagen0.png imagen1.png imagen2.png...
así sucesivamente hasta ultimoframe.

Puedes cambiar los nombres a tu antojo, estan en toload.

tiempo =
Timer.new() ;
tiempo:start();
lastloaded = -1;
ultimoframe = 30; -- <- imagen30.png

while true do
  
  -- Calcular imagen a cargar según tiempo.
   toload = 'ruta\imagen' .. math.floor(tiempo:time() / 50) .. '.png';
  
   if math.floor(tiempo:time() / 50) ~= lastloaded then
      imagen = image.load(toload);
      lastloaded = math.floor(tiempo:time() / 50);
   end;

  -- Último frame?
  if lastloaded == ultimoframe then break end;

   screen:blit(0,0, imagen); 

end

--A partir de aki será cuando ya haya pasado el último frame.


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de toños

aver este que hice: rojo =

aver este que hice:

rojo  = Color.new(255,0,0)
 
inicio = 0
relog = 0
escribir = ""
while true do 
pad = Controls.read() 
screen:clear()
 
if inicio >= 0 then
inicio = inicio +1
end 
 
if inicio > 60 then
inicio = 0
relog = relog +1
end
 
 
if relog == 1 then
escribir = "Va 1 segundo"
end
if relog == 2 then
escribir = "Va 2 segundo"
end
if relog == 3 then
escribir = "Va 3 segundo"
end
 
screen:print(0,10,escribir,rojo)
screen:print(0,0,relog,rojo)
 
screen.flip()
screen.waitVblankStart()
end    


Saves tocar la guitarra, eres de las peresonas como yo que no deja la guitarra ni un dia, pues espera mi aplicacion pues te sera de mucha utilidada.

Trabajando en 3 proyectos aunque no alla tiempo jaja:
*Batalla Ninja v5 incluira muchas mejoras muy buenas esperenlo

*Un juego de Mesa con editor de mapas y manejamiento automatico de mapa 
*Una aplicacion secreta util para los guitarristas

Team AntraX Miembro

La función es

La función es con imágenes no con números.

Imagen de toños

nomas es un ejemplo de como

nomas es un ejemplo de como lo puedes hacer.

cuantas imagenes van a ser???

EDITO: ya te entendi horita lo ago xD.

 

esto fue lo que te entendi

imagen = Image.load("barra.png")
inicio = 0
relog = 0
x = 0
y = 20
while true do 
pad = Controls.read() 
screen:clear()
 
if inicio >= 0 then
inicio = inicio +1
end 
 
if inicio > 50 then
inicio = 0
relog = relog +1
end
 
screen:blit(200,70,imagen,0,0,x,y)
 
if relog > 0 and x < 200 then
x = x +1
end
 
screen.flip()
screen.waitVblankStart()
end    

si no es asi ya vere como pero en la tarde por que ya me voy a la escuela xD.


Saves tocar la guitarra, eres de las peresonas como yo que no deja la guitarra ni un dia, pues espera mi aplicacion pues te sera de mucha utilidada.

Trabajando en 3 proyectos aunque no alla tiempo jaja:
*Batalla Ninja v5 incluira muchas mejoras muy buenas esperenlo

*Un juego de Mesa con editor de mapas y manejamiento automatico de mapa 
*Una aplicacion secreta util para los guitarristas

Team AntraX Miembro

Imagen de el__QAT

Mmm...

No se si esto vaya a funcionar, de hecho se me acaba de ocurrir eh, jaja xD. Ahí te va mi idea:

--Puedes hacerlo así--
 
--Cargamos las imagenes--
Textura1 = Image.load("Imagen1.png")
Textura2 = Image.load("Imagen2.png")
Textura3 = Image.load("Imagen3.png")
Textura4 = Image.load("Imagen4.png")
Textura5 = Image.load("Imagen5.png")
 
 
--Metemos las imagenes en una tabla--
Imagen = { Textura1, Textura2, Textura3, Textura4, Textura5 }
 
 
--Iniciamos el temporizador--
Temporizador = Timer.new()
Temporizador:start()
 
 
--Variable que indicara que imagen se muestra--
Numero = 1
 
 
--Bucle principal--
while true do
screen:clear()
 
 
--Almacenamos el tiempo--
tiempo = Temporizador:time()
 
 
--Función que sumara a la variable numero 1 cada 50 milisegundos--
if tiempo >= 50 then
     Numero = Numero + 1
     Temporizador:reset(0)
     Temporizador:start()
   end
 
 
--Mostramos las imagenes--
screen:blit(0,0,Imagen[Numero])
 
 
screen:flip()
screen.waitVblankStart()
end

Nose si vaya a funcionar, en un momento purebo y edito el comentario.

sAlud0s!


Tutorial: Fabricando nuestro propio micrófono para la PSP.

Exclusivo de PSP.Scenebeta.com

Imagen de moikop

Con...

System.waitVblankStart(50) o System.waitVblankStart(500)

o

System.sleep(500) 0 System.sleep(50) ( no me acuerdo bien como es )

Saludos


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

Con eso es imposible

Con eso es imposible hacerlo, no me has comprendido. 

Imagen de moikop

Nada es imposible...

Si esta vez te he entendido bien, esto te deberia funcionar.

NOTA : Lo he probado y cumple su funcion. Tambien le puedes agregar tantas imagenes como necesites.

Mira :

a = Image.load("a.jpg")
b = Image.load("b.jpg")
c = Image.load("c.jpg")
d = Image.load("d.jpg")
 
while true do
screen:blit(0,0,a)
screen.flip()
System.sleep(500) 
screen:blit(0,0,b)
screen.flip()
System.sleep(500)
screen:blit(0,0,c)
screen.flip()
System.sleep(500)
screen:blit(0,0,d)
screen.flip()
System.sleep(500)
screen.waitVblankStart()
screen.flip()
end

Saludos


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

¬¬

si me pongo hacer eso tendria que hacer 1246 lineasy no tengo tanto tiempo.

Lo mejor que puedes hacer es

Lo mejor que puedes hacer es usar un Array donde almacenar todas las imágenes. ¿Porque? pues sencillamente porque los arrays son estructuras para almacenar gran número de datos organizadamente a los que podemos acceder de forma veloz. Además se clasifican según un índice, por lo que podemos establecer una relación matemática entre el tiempo y el número de índice:

Imagenes = {}
Imagen[1] = Cargar
...
Imagen[n] = Cargar
 
-- Creamos una variable para controlar que nunca se pase del numero de imagenes provocando un error al intentar acceder a una tabla que no existe.
N = n
 
-- El temporizador 
Temporizador = Timer.new([startTime])
Temporizador:start()
 
-- Establecemos una relacion matematica, 50 milisegundos dijistes no?
I = math.floor(Temporizador:time()/50)
 
while true do
-- Todo lo necesario (screen:clear y esas cosas)
screen:blit(0,0,Imagen[I])
--gestion pantalla
end

Siento no poder darte el codigo programado completo, pero ahora ando un poco justo de tiempo y he escrito esto antes de salir. Otra cosa que te quería comentar, es si cargas las imágenes de golpe o almacenas las rutas y las vas cargando. De la segunda forma tan sólo tendrás cargada la imágen que se muestra, pero el código varia mucho-


->Mi Blog

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.