Anuncios Google

Problema con Teclado (os.osk) (Solucionado)

Hola a todos y gracias por ver mi duda ;)

Bien, os lo explico en CODE:

--Os dejo un sencillo code de mi problema 
--Variable
a=0 
 
--Iniciamos el bucle y leemos los controles
while true do
controls.read()
--Mostramos el valor de la Variable "a"
screen.print(10,10,a)
 
--ATENCION!
--Si pulsamos X podremos escribir el valor numerico que queramos. Pero entonces si pulsamos O cuando nos sale el teclado el valor sera inexistente, entonces como puedo decir que si el valor sea inexistente se convierta en 0??
 
if controls.cross() then a=os.osk("NADA","",1,1,1) end
 
if controls.start() then broke() end
 
screen.flip()
end

 

He probado esto:

if a~=0 or a~=1 or a~=2 or a~=3 or a~=4 or a~=5 or a~=6 or a~=7  or a~=8 or a~=9 then a=0 end
--pero no a resultado...

 

Una solucion (Al tratarse de una sola cifra entre el 0 y el 9...):

if a~=0 and a~=1 and a~=2 and a~=3 and a~=4 and a~=5 and a~=6 and a~=7  and a~=8 and a~=9 then a=0 end
 
--Esta si!!!. Pero porque yo solo necesitaba una cifra... si hubiera necesitado mas. No hubiera valido

 

La definitiva y correcta:

 

if a == ""  then a = 0 end

 

Salu2!!!


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.


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.

Fácil, con dos

Fácil, con dos variables:

numb,status = os.osk(........)
   if status == -1 then numb = 0 end
--Que por qué -1? Leer la documentación ;)

Por cierto, se me olvidó mencionarlo: os.osk regresa strings. Si metes un número, te lo devuelve también como string (algo como "555"). No es lo mismo 555 que "555", ten cuidado con eso.

Imagen de jorge_97

by jorge_97

Por cierto, se me olvidó mencionarlo: os.osk regresa strings. Si metes
un número, te lo devuelve también como string (algo como "555"). No es
lo mismo 555 que "555", ten cuidado con eso.

Mmmm ok gracias

xD

Solucionado


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de Dioni0396

el string

te lo devolvera a ti, a mi no, revisa "lua for you" el codigo del texto aver si devuelve string. en caso de que lo devolviera tenemos "tonumber"...

Imagen de NEKERAFA

Haber...

Lua, como muchos otros lenguajes de scripting, permiten trabajar con cadenas y numeros siempre que se puedan transformar sin necesidad de tostring o tonumber.

Por ejemplo, os.osk, si pones un numero en realidad te lo devuelve en forma de cadena, pero sin necesidad de nada puedes sumarlo (Por ejemplo "10" + 10). Otro ejemplo es al imprimir numeros en pantalla. screen.print solo acepta strings, pero auntomaticamente transforma ese numero en una cadena


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Imagen de cam-maker

puedes probar

puedes probar con esto

a = 0 
while true do
	controls.read()
	screen.print(10,10,a)
	if controls.cross() then 
		a = os.osk("NADA","",1,1,1)
		if a == nil or a == "" then
			a = 0
		end
	end
	if controls.start() then 
		broke()
	end
	screen.flip()
end


"Las cosas brillantes siempre salen de repente, como la geometría de una flor"


Imagen de jorge_97

by jorge_97

Lo he probado:

La correcta es esta:

if a == "" then
a = 0
end

Salu2 y gracias

Imagen de cam-maker

la mia sigue

la mia sigue siendo correcta xD lo que pasa es que no me acuerdo si devuelve nil o ""

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.