Anuncios Google

Ayudas en lua [se recompenza con $B]

Hola,estoy pidiendo ayuda para el LUA, y por cada que me ayuden les dare 20 $B!,y un lugar en los creditos de las aplicaciones en creacion...

1.- Fecha y hora[gracias]

2.-el Sistem message.[gracias]

3.-Bateria

Quiero que se muestre el estado de bateria...por ejemplo si esta al 100% muestra una imagen,si esta a la mitad muestra otra y si esta casi vacia muestra otra ENTIENDEN?

ejemplo esta cargada al 100% muestra una imagen de una bateria (logico) en cierto lugar...

se agradece su tiempo... en especial MoiKop ;)


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 PSPPRECIZO

Pues me lo pediste aqui

Pues me lo pediste aqui estan tus baterias:http://www.mediafire.com/?yttwmkzmbgd

Un Saludo

PD:la explicacion te la mando por mp.

Imagen de Chimecho

Sobre lo de la bateria seria

Sobre lo de la batería sería algo así:

 

porcentaje=System.powerGetBatteryLifePercent()
 
if porcentaje>=90 then
Image:blit(x,y,imagen_bateria4)
elseif porcentaje<100 and porcentaje>=75 then
Image:blit(x,y,imagen_bateria3)
elseif porcentaje<75 and porcentaje>=50 then
Image:blit(x,y,imagen_bateria2)
elseif porcentaje<50 and porcentaje>=25 then
Image:blit(x,y,imagen_bateria1)
elseif porcentaje<25 then
Image:blit(x,y,imagen_bateria0)
end

 

Ahi solo reemplaza x, y, y las variables de las imagenes con las que desees usar.

Aquí te dejo todas las funciones que tienen que ver con la batería/cargador

System.powerGetBatteryChargingStatus()
System.powerGetBatteryLifePercent()
System.powerGetBatteryLifeTime()
System.powerGetBatteryTemp()
System.powerGetBatteryVolt()
System.powerIsBatteryCharging()
System.powerIsBatteryExist()
System.powerIsLowBattery()
System.powerIsPowerOnline()

Un saludo.



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

gracias

pero siempre da error :(

Chimecho tome tu codigo el

Chimecho tome tu codigo el que has puesto para reeditarlo un poco para tratarde solucionarle elproblema al usuario.

--Caragmos las imagenes
imagen_bateria4 = Image.load("imagenes/imagen1.jpg")
imagen_bateria3 = Image.load("imagenes/imagen2.jpg")
imagen_bateria2 = Image.load("imagenes/imagen3.jpg")
imagen_bateria1 = Image.load("imagenes/imagen4.jpg")
imagen_bateria0 = Image.load("imagenes/imagen5.jpg")
 
 
if porcentaje>=90 then
Image:blit(x,y,imagen_bateria4)
elseif porcentaje<100 and porcentaje>=75 then
Image:blit(x,y,imagen_bateria3)
elseif porcentaje<75 and porcentaje>=50 then
Image:blit(x,y,imagen_bateria2)
elseif porcentaje<50 and porcentaje>=25 then
Image:blit(x,y,imagen_bateria1)
elseif porcentaje<25 then
Image:blit(x,y,imagen_bateria0)
end
 
 
while true do
porcentaje=System.powerGetBatteryLifePercent()
end

 

Lo unico que anadi fue la carga de las imagenes y a asignacion de esa image a la variable que usas al mostrarla con el screen:blit, recuerda sustituir las X y las Y, por las coordenadas que deseas y la ruta, el nombre y el formato de las imagenes que cargas con el Image.load()

imagen_bateria4 = Image.load("imagenes/imagen1.jpg") Con el Image.load buscamos una imagen llamada imagen1 que esta dentro de un folder llamado imagenes y asignamos esa imagen a la variable imagen_bateria4, asi puedes usar luego esa variable en el screen:blit. si bien tienes la imagenes sueltas junto con el eboot te recomiendo las pongas en un folder, para que esten mas ordenadas.

 

 

Imagen de Chimecho

Pues gracias!, pero se te

Pues gracias!, pero se te han olvidado un par de cosas:

--Caragmos las imagenes
imagen_bateria4 = Image.load("imagenes/imagen1.jpg")
imagen_bateria3 = Image.load("imagenes/imagen2.jpg")
imagen_bateria2 = Image.load("imagenes/imagen3.jpg")
imagen_bateria1 = Image.load("imagenes/imagen4.jpg")
imagen_bateria0 = Image.load("imagenes/imagen5.jpg")
 
 
 
while true do
porcentaje=System.powerGetBatteryLifePercent()
 
if porcentaje>=90 then
Image:blit(x,y,imagen_bateria4)
elseif porcentaje<100 and porcentaje>=75 then
Image:blit(x,y,imagen_bateria3)
elseif porcentaje<75 and porcentaje>=50 then
Image:blit(x,y,imagen_bateria2)
elseif porcentaje<50 and porcentaje>=25 then
Image:blit(x,y,imagen_bateria1)
elseif porcentaje<25 then
Image:blit(x,y,imagen_bateria0)
end
 
 
screen.flip()
screen.waitVblankStart()
end

Listo, ahora sí, con eso debería funcionar perfectamente, solo sustituyendo las coordenadas x,y nada más.

Saludos



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Esta solución al problema

Esta solución al problema no me gusta, usa muchas imágenes para tan sólo mostrar el porcentaje de bateria que queda. Lo más facil sería usar una imagen de la bateria completa e ir mostrandola en función de la bateria que queda. Es decir, coger una imagen de la bateria completa, y si esta al 100% mostrar toda la imagen, si esta al 50% mostrar la mitad de la imagen. Además de esta forma te ahorras muchos if y comprobaciones, ya que usarias un solucion matematica directa bastante sencilla como es una multiplicacion, que calcularia a cada ciclo o cada vez que compruebas la bateria restante y la muestras con algo mas de precisión:

Bateria = { Array donde almacenaremos la informacion de la bateria
Imagen = Imagen.load("Ruta"),--Cargas imagen que se encuentra en la ruta especificada, en este caso deberá determinarla tu
Carga = System.powerGetLifePercent(),
Px = 0
Refrescar = 0 
}
 
Bateria.Px = Bateria.Imagen:width() --asignamos a Px el ancho de la imagen.
 
function Bateria.Refrescar(Delay)--Funcion para recalcular la bateria restante, delay es el retraso entre comprobacion y comprobacion medido en ciclos de ejecucion.
 
if Delay > Bateria.Refrescar then
Bateria.Carga = System.powerGetLifePercent()--Actualizamos bateria restante
Bateria.Px = ((Carga*Px)/100) -- Mostramos la imagen en funcion del porcentaje
end
Bateria.Resfrescar + 1--Aumentamos el contador
else
Bateria.Refrescar = 0--Si se ha pasado, reiniciamos el contador
end
 
while true do
screen:clear()
Bateria.Refrescar()
screen:blit(x,y,Bateria.Px, Alto_Imagen, Bateria.Imagen)--Mostramos la imagen, Alto_Imagen es una constante que representa el alto de la imagen de la bateria
screen:flip()
scree.waitVblankStart()
end

La idea sería algo como eso, pero no lo he podido probar, así que seguramente tendrá algún fallo.


->Mi Blog

Imagen de Chimecho

Entonces en todo caso, me

Entonces en todo caso, me gustaría algo así, más sencillo:

batt=Image.load("imagenes/bateria.png")  --Cambia la ruta por la de tu imagen
ancho=batt:width()
alto=batt:height()
 
function showbatt()
porcentaje=System.powerGetBatteryLifePercent()
Image:blit(x,y,batt,0,0,ancho*(porcentaje/100),alto) --Cambia x,y por las coordenadas que desees
end
 
while true do
screen:clear()
showbatt()
screen.flip()
screen.waitVblankStart()
end

Salu2



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Bueno pero así no

Bueno pero así no aprovechas que Lua ofrece una herramienta muy potente que son las metatablas donde puedes almacenar datos y metodos. Si todas las variables definen el estado de la bateria, lo correcto es definir una entidad bateria que aglutine todas esas caracteristicas y una serie de funciones que trabaje sobre los datos de la misma. Obviando muchos detalles las metatablas son la solución de Lua para la programación orientada a objetos, en el ejemplo que he puesto yo, no se puede decir que sea programación orientada a objetos propiamente dicha, sino que hace "una imitacion". Un ejemplo de uso de un objeto en lua es cuando en a una imagen le buscas su anchura (imagen:width()), en realidad la imagen es un objeto y aplicamos usamos el método miembro width que devuelve su anchura. Así que sigo pensando que la solución que he dado es mejor, porque trabaja creando una entidad bateria compuesta por una serie de atributos definidos por variables que almacenamos en una metatabla que es una estructura de datos muy potente y eficiente y que además nos permite almecenar funciones dentro y tenerlas organizadas en algo así como un módulo.


->Mi Blog

Imagen de Chimecho

¬¬'

Yo opino que el fin es el mismo, no por no usar metatablas o por no usar variables por separado se va a usar más memoria, entonces digo que el metodo usado es el mismo, solo que distinta forma.

Saludos



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de DeViaNTe

variables u metatablas

Sep, las metatablas son algo potente si señor, y sirve para otras cosas que no son esas... Pero no olvidemos que seguramente esta gente está aprendiendo, si les cuesta hacer eso de la imagen, ni hablemos de las metatablas.

P.D: Pakoh: Creo que tu te refieres a las "tablas vulgaris", pq las metatablas no son para almacenar datos, si no para cambiar el modo en que lua trabaja con un "objeto" como bien comentas. Sirve para definir una función de comparación... de igualdad... Un ejemplo así básico de las metatablas que uso, es para decirle a lua cómo debe comparar una imagen con otra. Eso se haria modificando el campo "eq" de la metatabla del objeto imagen. Así que creo que te querias referir a las tablas normales.

Y weno... ya que estamos... premio al code mas corto xD

batt=Image.load("imagenes/bateria.png")

Image:blit(x,y,batt,0,0,batt:width()*(System.powerGetBatteryLifePercent()/100),batt:height())


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

Llevas razón con las

Llevas razón con las metatablas se me ha ido la olla, solo se usan para definir operaciones sobre determinadas tablas como por ejemplo suma o resta de matrices (lo que las he usado yo).

Sin embargo, no estoy de acuerdo contigo en que el criterio del código más corto prevalece. Es más, en este caso es más evidente que es mejor definir un objeto bateria bien definido, pk ademas de poder portarlo a otros programas es una estructura más integra, ya que de esta forma tienes un objeto concreto y de la otra tienes muchos. Después en la solución que das no es para nada optimo, tu codigo es mas corto, y ahorras una cantidad de bytes muy pequeña, ya que te ahorra tres variables enteras (12bytes aprox) y lo que pueda ocupar el fragmento en memoria es decir que posiblemente no llegue ni a los 3kb. 3Kb que has obtenido sacrificando un tiempo de procesado considerable al ejecutar el metodo width y el metodo height a cada ciclo que no se cual es el gasto de tiempo, pero es seguro que mucho mayor que el de acceder a una variable entera.

Y la bateria no hay más remedio que calcularla, pero según tu código si quisieses saber el nivel de la bateria por ejemplo para gestionar la energia volverias a tener que buscarlo. Y si usamos otro entero podemos aprovechar eso como parametro del objeto bateria y usarlo para otros fines que no sea solo mostrar la imagen, ya que siempre es mas rapido acceder a una variable que a un metodo.


->Mi Blog

Imagen de DeViaNTe

exactamente

No prevalece el más corto, todo depende. Por eso cada programa ha de tener su estructura y su metodología. Pero... por regla general, creo que ese código funcionaría bastante "eficazmente"xD. No creo que les venga de una o dos operaciones, en caso de homebrews bastante potentes si, pero si no la función ya haría lo suyo. Además, podría ponerle un temporizador de refresco de dicha imagen y tal y tal y tal, y si se necesitara el resultado de la operación también se podría guardar y eso. Se puede hacer desde lo más simple, hasta lo más complejo, pero eso si, siempre, dependiendo del tipo de homebrew que se esté haciendo y sus necesidades. Ahi creo que coincidiremos xD.

Ah, y lo de la diferencia entre velocidades tienes razón, aqui tienes lo que hace cada uno:

De variable dentro de una tabla batt (lo que usas):
 getfield globalsindex "batt"
 getfiled -1 "width"
 remove -2

De variable global:
 getfield globalsindex "nombrevar"

Del objeto directamente:
 getfield globalsindex "image"
 getfield -1 "width"
 remove -2
 getfield globalsindex imagen
 call 2 1

Así que mi método son dos operaciones mas por propiedad, un total de 4 operaciones. Pero no se cuantas operaciones por segundo es capaz de hacer la psp, tendré k testearlo... (Ahora me entiendes cuando digo, realmente potente?)

Suele tardar muuuuuucho más la GPU en procesar los gráficos, y procesa los gráficos a la vez que el código, así que por norma general, en homebrews de pekeña / mediana complejidad no es necesario tanta optimización.

Y para no dar más la vara: Que cada coder elija su propio método de programación. No todo el mundo programa igual. :)


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

Ya, si a lo mejor se que lo

Ya, si a lo mejor se que lo que digo es un tanto estricto, pero vamos que lo que digo es que prefiero eso por que sigue una metodologia de programacion que es la que se usa hoy en dia, además de que te permite usarlo en cualquier programa. Yo lo que pienso es que si hay algo mas optimo y sabes como hacerlo, hazlo.


->Mi Blog

Tienes razon esos detalles

Tienes razon esos detalles los obvie, ya que entiedo que el debia saberlo, pero gracias por ponerlos asi los que no lo saben se instruyen. Espero nos deje saber que tal leha ido.

Imagen de moikop

Bueh...

Si no dices que error, que queres que hagamos?

bueno

primero me aparecia un error de no se que BLIT,trate de menusear el fichero.lua y se arreglo,el problema es que NO se muestran las imagenes!!

Imagen de moikop

¬¬'

Como queres que se muestren las imagenes si el BLIT es el que las muestra en pantalla?? ¬¬'

Imagen de Chimecho

2 preguntas: 1º: Que lua

2 preguntas:

1º: Que lua usas?

2º: Si tienes puesto el screen.flip() depués de los bliteos dentro del bucle principal, cierto?



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

porfavor

:( porfavor lo necesito

Imagen de moikop

Respuesta =

Respuesta = System.buttonPressed(0)
if Respuesta == 1 then
 screen:print(0,0,"SI",blanco)
elseif Respuesta == 0 then
 screen:print(0,0,"NO",blanco)
end

Un saludo


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í.

Imagen de Kevinkl3

pos

Nomas asi mira:

-- Reloj 1.0 by kevinkl3 xD
negro = Color.new( 0, 0, 0 )
 
while true do
screen:clear()
 
hora = System.getTime(1)
minuto = os.date("%M")
screen:print( 100, 100, "".. hora, negro )
screen:print( 105, 100, " :".. minuto, negro )
 
screen.flip()
screen.waitVblankStart()
end

sobre la fecha no he probado..

Dale buen uso xD..

Saludos!!


Chat No Oficial SceneBeta

PSP && Wii

 

OK

lo intentare,gracias

Imagen de moikop

System.getDate(opcion) System

System.getDate(opcion)

System.getTime(opcion)

--[[Revisar tutos de pipa para más información]]--

os.time()
os.date() -- Estos dos no estoy seguro...

Y quedate con los bitos ;)

Un saludo


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í.

Orale,gracias moikop

OK,los biitos se quedan...pero van formando un montoncito acumulado xD, ESTATE seguro de aparecer en los creditos ;)

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.