Buenas estoy haciendo un script que será un juego de azar y tengo un problema aquí el code:
mac = Adhoc.getMac() nick = System.nickName() mac = tostring(mac) nick = tostring(nick) Adhoc.init() Adhoc.connect() Adhoc.send("Noticia: "..nick.." se ha unido al chat") Adhoc.send("Con Mac:"..mac) green = Color.new(255,255,255) negro = Color.new(0,0,0) x = 0 limpiar = 0 fuente = Font.load("./Acens.ttf") fuente:setPixelSizes(0,20) oldpad = Controls.read() while true do pad = Controls.read() datos = Adhoc.recv() dado = math.random(1,6) dado2 = math.random(1,6) suma = dado + dado2 dado = tonumber(dado) dado2 = tonumber(dado2) suma = tonumber(suma) if datos ~= "" then x = x + 20 if tonumber(x) == 260 then x = 20 limpiar = limpiar + 1 screen:clear(negro) screen.flip() screen:fontPrint(fuente,10,x,datos,green) screen.flip() screen.waitVblankStart() else screen:fontPrint(fuente,10,x,datos,green) screen.flip() screen.waitVblankStart() end end if pad:r() then x = x + 20 osk = System.startOSK("","Introduce tu mensaje") if tonumber(x) == 260 then x = 20 limpiar = limpiar + 1 screen:clear(negro) screen.flip() screen:fontPrint(fuente,10,x,"Yo: "..osk,green) screen.flip() screen.waitVblankStart() else screen:fontPrint(fuente,10,x,"Yo: "..osk,green) screen.flip() screen.waitVblankStart() end Adhoc.send(nick..": "..osk) end if pad:cross() and not oldpad:cross() then x = x + 20 Adhoc.send(nick.." ha tirado los dados y ha sacado "..suma) if tonumber(x) == 260 then x = 20 limpiar = limpiar + 1 screen:clear(negro) screen.flip() screen:fontPrint(fuente,10,x,"Has sacado "..suma.." tirando los dados",green) screen.flip() screen.waitVblankStart() else screen:fontPrint(fuente,10,x,"Has sacado "..suma.." tirando los dados",green) screen.flip() screen.waitVblankStart() end end if tonumber(limpiar) == 4 then System.memclean() end end
el problema es que alpulsar x se repite un montón la acción de los dados y yo quiero que aunque deje pulsada la X solo la haga una vez,gracias.
PD:Es luaplayerhm7
Mmm...
Dejar que lo haga como quiera, cualquiera es libre de hacerlo en el lenguaje que le de la gana.
Veo que lo que quieres hacer es que si se pulsa X una vez haga tal cosa, ¿No? Para ello necesitas hacer la siguiente comprobación:
if pad:cross() and oldpad:cross() ~= pad:cross()
(4. Tablas (arrays)) y al final del bucle añadiroldpad = pad
para que sea actualizado en cada vuelta.También te digo que puedes eliminar el tostring y tonumber, ya que esos valores siempre serán números, y evita hacer tantos screen.flip(), ya que puede provocar una ralentización al tener que "cambiar" los bufferes varias veces en un mismo bucle. Creo que sería recomendable hacer al final del bucle.
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).
Estaría mejor que usaras LuaDev...
Es mejor para esas cosas... no hay tanto lio, la verdad.
Un saludo.
Podrias hacer esto
Si fuera luadev seria mas facil la verdad...
Ya está es que no estoy en
Ya está es que no estoy en mi ordenador y este teclado es muy malo.
Repite
estre trozo:
el problenaes que alpulsar x se repite un montón laacción elos dadosy yo
quiero que aunque l edje pulsadasolo l haga una vez,gracias
pero bien escrito, que no me he enterado de nada
Lo intento traducir...
"El problema es que al pulsar el botón "X", se repite la elección hacia un monton de ladoy, y yo quiero, que aunque lo deje pulsado, solo lo haga una vez, gracias."
SI ESQUE NO SE ENTIENDE