Anuncios Google

¿Cuanto tiempo le queda al contador?

Hola.

Bueno, quiero que veais este trozo de código y me digais si sirve para decir cuanto tiempo le falta a un temporizador para que llegue al tope que quiera el programador, por ejemplo, en este caso quiero que se acabe el tiempo en este juego a los 90 segundos:

blanco = Color.new(255,255,255)
negro = Color.new(0,0,0)
 
tiempo = Timer.new()
 
tiempoRestante = 90 - tiempo:time()/1000 .. "segundos"--ya que el temporizador cuenta en milisegundos en HM7
 
while true do
screen:clear()
 
tiempo:start()
 
screen:print(0, 0, "Te quedan " .. tiempoRestante, blanco)
 
if tiempoRestante==0 then
screen:clear(blanco)
screen:print(100, 100, "Vaya! Se te haacabado el tiempo", negro)
screen:print(100, 125, "Pulsa circulo para salir", negro) --esto y el if de abajo opcionales, claro
if Controls.read():circle then --normalmente uso la variable pad pero se me ha olvidado
System.Quit()
end
end
 
screen.flip()
screen.waitVblankStart()
end

¿Funcionaría este código?

Gracias



Offspring - Rise and Fall, Rage and Grace
Dark_AleX
21st Century Breakdown
American Idiot

SceneBET y PSP Euskaraz 2... ¿Pronto?


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 pipagerardo

Temporizador

Lo que veo en tu código no tiene mucho sentido, de verdad que no lo entiendo.

Lo primero de todo, solo realizas una única lectura del tiempo del timer y encima le concatenas una cadena de texto, con lo cual esa variable es de tipo string y no number.

tiempoRestante = 90 - tiempo:time()/1000 .. "segundos"

Luego comparas un string con 0, por lo cual solo te dirá que la cadena no esta vacia, pero ¿Para qué?

if tiempoRestante==0 then

Y por último y menos importante arrancas el timer constantemente dentro del bucle.

while true do
screen:clear()
tiempo:start()


Ejemplo que cuenta hasta 10 segundos :

contador = Timer.new()  
while true do          -- Bucle infinito.
contador:start()       -- Arranca el contador una vez solo.
repeat                    -- Bucle de repeticion.
tiempo = math.floor( contador:time() / 1000 )       
...
...
...
...
until tiempo > 10000
contador:stop()          -- Detiene el contador.
contador:reset(0)       -- Pone a cero el contador.
end

 

Postdata: Hace años que no programo en LUA y tampoco tengo intención. Así que estoy un poco oxidado en LUA.

Imagen de unai.

Joe vale gracias, me ha

Joe vale gracias, me ha costado pero lo he pillado por fin!!!

Muchas gracias!

Imagen de Chimecho

:O

Pipagerardo!, tio, yo pensé que estabas muerto o estabas desaparecido... se que no me conoces pero :O hace tiempo que no veia tu nombre por ningún lado, kiero felicitarte por tu tuto de lua, aunque para serte sincero, jamas segui ni uno.

Bueno, na mas eso

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 pipagerardo

Pues aún no me he muerto.

Lo que pasa es que llevo más de un año aprendiendo C++, SDL y OpenGL. Y de momento solo para PC aunque debería ser portable a otras plataformas. Esto es muchísmo mas complicado de aprender que LUA pero también es muchísimo más potente.

Espero que en breve me publiquen mi último tutorial de OpenGL en la sección de PC.

Gracias.

Imagen de Chimecho

:O

Ese tuto te aseguro que si lo seguiré, tus tutos son buenos, sólo que los de lua no los seguí xDD xq aprendí a la antigüita (revisando sources, modificando aki, aya xD)

Bueno, veo que son dos comments tuyos hace muuucho tiempo, por lo menos aquí en scenebeta (porque sólo tienes 2 bitos xD)

Saludos y cuidate, gusto conocerte :)



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 pspgorrister

Para qué sirve

Para qué sirve tiempo:start()? si inicializa el temporizador, debería ir fuera del bucle. Por otro lado, el tiempo restante no lo calculas nunca en el bucle.


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

Coincido contigo en lo de

Coincido contigo en lo de tiempo:start() debe ir fuera del bucle pero en lo de calcular el tiempo restante si se puede calcula como el lo ha puesto solo que deberia ir dentro del bucle principal ya que es la parte del codigo que se repite una y otravez, haciendo que el calculo sea efectivo.

Imagen de pspgorrister

pero en lo de calcular el

pero en lo de calcular el tiempo restante si se puede calcula como el lo
ha puesto solo que deberia ir dentro del bucle principal

Es exactamente lo que he dicho yo. Vuelve a leer mi post:

Por otro lado, el tiempo restante no lo calculas nunca en el bucle.


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

Imagen de unai.

tiempo:start(), como tu

tiempo:start(), como tu dices, es para que empiece el temporizador. No sabía que iba fuera.

¿Porqué no se puede calcular? Si en un juego quieres dar cierto tiempo para que el jugador pase el nivel y quieres que el jugador sepa el tiempo restante...

Pero bueno, si dices que no se puede, no lo intentaré.

Gracias



Offspring - Rise and Fall, Rage and Grace
Dark_AleX
21st Century Breakdown
American Idiot

SceneBET y PSP Euskaraz 2... ¿Pronto?

Imagen de pspgorrister

¿Dónde he dicho yo que NO SE

¿Dónde he dicho yo que NO SE PUEDA?. Te he dicho que no lo calculas en el bucle, por eso lo tienes mal.

Imagen de unai.

Lo siento, lo he entendido

Lo siento, lo he entendido mal =P

Pero, lo que yo llego a entender es esto:

Yo he calculado en una variable el tiempo restante, esa variable está fuera del bucle. Entonces, ¿debería ser así?:

--acorto el codigo para poner solo lo importante
while true do
 
screen:print(0, 0, "El tiempo restante es " .. 90 - tiempo:time()/1000 .. " segundos", blanco)
 
--se que faltan el flip y el otro
end

Hasta ahí llega mi capacidad, si no es así, déjalo XD

Y por otra parte, en el gran tutorial de Lua de pipagerardo (http://pipagerardo.fortunecity.es/Tutorial_LUA_PSP_pipagerar...) empieza el contador dentro del bucle, entonces, ¿Quien se equivoca?

Muchsa gracias =D



Offspring - Rise and Fall, Rage and Grace
Dark_AleX
21st Century Breakdown
American Idiot

SceneBET y PSP Euskaraz 2... ¿Pronto?

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.