Buenas. Estoy haciendo un juego en Lua sobre preguntas matemáticas. Cada vez que respondes una pregunta, pasas a la siguiente pregunta (las preguntas están en formato ".png"). Lo que quiero hacer es que cuando pulses el botón "X", salga la primera pregunta. Os dejo el código porque no me funciona (me dice que hay un [expected end]):
--Comandos principales
white = Color.new(255,255,255)
red = Color.new(255,0,0)
black = Color.new(0,0,0)
blue = Color.new(0,0,255)
font = Font.load("font.ttf")
font:setPixelSizes(0,50)
puntos = 0
welcomenow = Image.load("entrenamientolua.png")
pulsastart = Image.load("fulsastart.png")
primera = Image.load("aristaalcubo.png")
oldpad = Controls.read()
function pasar()
pad = Controls.read()
if pad:cross() then
screen:blit(0, 0, primera)
screen.waitVblankStart()
screen.flip()
end
--Pantalla de bienvenida
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
while true do
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
pasar()
end
Por cierto PSPNOVATO la
Por cierto PSPNOVATO la funcion de salir seria asi:
if pad:cross() and menu = 4 then
os.exit()
end
Nope
Esa función da problemas. La ideal sería System.Quit().
Saludos
Pues yo en mi juego la uso
Pues yo en mi juego la uso y me va perfectamente asi que tu veras ...
Saludos , P22
Tambien la he usado
También la he usado, y se cuelga en lugar de salir xD que irónico.
Saludos
Si lo unico que quieres
Si lo unico que quieres hacer es un menu yo no haria todas esas chorradas(no pretendo ser sarcastico) ya que son demasiadas cosas te lo dejo aqui:
m1 = Image.load(m1.png)
m2 = Image.load(m2.png)
presentacion = 0
while true do
screen:clear()
pad = Controls.read()
if pad:up() then presentacion = presentacion + 1 end
if pad:down() then presentacion = presentacion - 1 end
if presentacion = 1 then screen:blit(0,0,m1) end
if presentacion = 0 then screen:blit(0,0,m2) end
if presentacion = 2 then presentacion = 0 end
screen.waitVblankStart()
screen.flip()
end
Por cierto :
Por que poneis 80 entre los parentesis?
Saludos P22
EDITO:pon los oldpad a tu gusto
Es probable que tu error se deba a los oldpad porque yo en mis menus no lo puedo poner ya que si no no me va y la flecha no se mueve
¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.
Mi review: iPod Touch 4G
Sigue sin hacer nada.
Sigue sin hacer nada. Aunque ahora, cuando lo dejo pulsado, se cierra rápidamente. Ahí va:
--Comandos principales
white = Color.new(255,255,255)
red = Color.new(255,0,0)
black = Color.new(0,0,0)
blue = Color.new(0,0,255)
font = Font.load("font.ttf")
font:setPixelSizes(0,50)
puntos = 0
fondo = 0
welcomenow = Image.load("entrenamientolua.png")
pulsastart = Image.load("fulsastart.png")
primera = Image.load("aristaalcubo.png")
oldpad = Controls.read()
function pasar()
pad = Controls.read()
if pad:cross() and oldpad:cross() ~= pad:cross() and fondo <= 0 then
fondo = fondo + 1
end
if fondo == 1 then
screen:blit(0, 0, aristaalcubo)
end
screen.waitVblankStart()
screen.flip()
end
--Pantalla de bienvenida
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
while true do
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
pasar()
end
el error
no viene de eso si lo haces de nuevo calmadamente te daras cuenta de los errores k hiciste lo mismo hago yo antes de hacer el codigo para el juego k voy a crear primero hago una prueba en un nuevo documento (una carpeta diferente con otro nombre como prueba1/script.lua) y la hago correr en lua si algo salio mal no tengo k complicarme la vida viendo el monton de codigo k tengo en mi juego.
Un saludos ojala k salga de tu problema pronto ;)
Ya casi
El problema es que las sumas se ejecutan muy rápido, cambia tu función:
function pasar()
pad = Controls.read()
if pad:cross() and oldpad:cross() ~= pad:cross() and fondo <= 0 then
fondo = fondo + 1
end
if fondo == 1 then
screen:blit(0, 0, aristaalcubo)
end
screen.waitVblankStart()
screen.flip()
end
por esta otra:
function pasar()
pad = Controls.read()
if pad:cross() and fondo <= 0 then
fondo = 1
end
if fondo == 1 then
screen:blit(0, 0, aristaalcubo)
end
screen.waitVblankStart()
screen.flip()
end
Pero de ese modo solo se
Pero de ese modo solo se cambiaria el fondo cuando esta pulsando X ( pad:cross() = true ) de tal modo que en cuanto lo suelte se va a cambiar.
Saludos
¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.
Mi review: iPod Touch 4G
No
No si la variable fondo está fuera del bucle principal, en su defecto sí, sólo se mostraría al pulsar X.
he encontrado tu error
Lo que te falla es que tu pones esto:
if pad:cross() then
screen:blit(0,0,primera)
end
de tal forma que solo cambia de imgn si le pulsas X en cuanto sueltas vuelve a la primera.
Prueba con esto:
fondo = 0
if pad:cross() then
fondo = fondo + 1
end
if fondo = 0 carga esta imagen end
if fondo = 1 carga la otra end
A no ser que lo que tu querias fuera eso
Saludsp
¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.
Mi review: iPod Touch 4G
No funciona aún :(
Lo he hecho como tu me has dicho, aún así, sigue sin cambiar la pantalla cuando pulso "X". Lo dejo:
--Comandos principales
white = Color.new(255,255,255)
red = Color.new(255,0,0)
black = Color.new(0,0,0)
blue = Color.new(0,0,255)
font = Font.load("font.ttf")
font:setPixelSizes(0,50)
puntos = 0
fondo = 0
welcomenow = Image.load("entrenamientolua.png")
pulsastart = Image.load("fulsastart.png")
primera = Image.load("aristaalcubo.png")
oldpad = Controls.read()
function pasar()
pad = Controls.read()
if pad:cross() and oldpad:cross() ~= pad:cross() and fondo <= 0 then
fondo = fondo + 1
end
if fondo == 1 then
screen:blit(0, 0, aristaalcubo)
end
screen.waitVblankStart()
screen.flip()
end
--Pantalla de bienvenida
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
while true do
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
end
function pasar()
end
También he intentado hacer que se active al pulsar "X", una sola vez, aunque, no sé si me ha salido bien. Saludos, PSPNOVATO.
Es muy evidente
Mira tu Bucle Principal:
while true do
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
end
function pasar()
end
Cámbialo por esto:
while true do
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
pasar()
end
Te falta poner el end de la
Te falta poner el end de la function pasar() y por otra parte aunquehasta que no te funcione no lo vas a descubrir , en la ultima linea en ve de poner pasar() pon function pasar() que si no no tira
Saludos , P22
¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.
Mi review: iPod Touch 4G
Erróneo
Está bien tu corrección excepto lo de la función, así como lo tiene está perfecto, está llamando a la función (Supongo) no declarándola.
No hace nada especial
Ya lo he puesto como me habéis dicho los dos (gracias, ¡pensaba que nadie iba a contestar!), pero por más que pulso "X", no cambia el fondo. Os dejo el código para ver que estoy haciendo mal ;) :
--Comandos principales
white = Color.new(255,255,255)
red = Color.new(255,0,0)
black = Color.new(0,0,0)
blue = Color.new(0,0,255)
font = Font.load("font.ttf")
font:setPixelSizes(0,50)
puntos = 0
welcomenow = Image.load("entrenamientolua.png")
pulsastart = Image.load("fulsastart.png")
primera = Image.load("aristaalcubo.png")
oldpad = Controls.read()
function pasar()
pad = Controls.read()
if pad:cross() then
screen:blit(0, 0, primera)
screen.waitVblankStart()
screen.flip()
end
end
--Pantalla de bienvenida
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
while true do
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, pulsastart)
screen.waitVblankStart()
screen.flip()
screen.waitVblankStart(80)
screen:blit(0, 0, welcomenow)
screen.waitVblankStart()
screen.flip()
function pasar()
end
end