Hola estoy haciendo un juego tipo Quiz para la Scenery Beta 2008 en Lua y como es la primera vez que lo uso tengo dudas...
- He implementado un Cursor (puntero) al Menu Principal pero no tengo muy claro como debo hacer para que al pulsar en la imagen cargue un archivo especifico o imprima algo en la pantalla... Habia pensado usar el comando if y decir que si el puntero esta entre x e y cordenadas y apretas then dofile ("Algo.Lua") pero no creo que sea asi.
- Se pueden mostrar imagenes animadas (.gif) sin ningun tipo de "libreria"?
PD. No hace falta que me digais el pedazo de codigo que tengo que usar simplemente alguna pagina donde pueda encontrar algun tutorial que me ayude
Salu2
¡Visca el Barça y Viva España!
Siento
Siento no haber respondido antes pero me olvide jeje
Al final lo hice como dije os pongo el codigo:
<----Menu Anime Contest---->
--Definimos las variables para el cursor
x0 = 240
y0 = 136
x1 = 0
y1 = 0
--Definimos los Controles
while true do
pad = Controls.read()
dy = pad:analogY()
dx = pad:analogX()
if math.abs(dx) > 64 then
x0 = x0 + dx / 12
end
if math.abs(dy) > 64 then
y0 = y0 + dy / 12
end
x1 = x0
y1 = y0
--Creamos el Menu
screen:blit(0,0,fondo)
screen:blit(55,80,juegonuevo)
screen:blit(340,80,opciones)
screen:blit(197,80,creditos)
--Hacemos funcionales las 3 opciones (ahora solo eran imagenes)
--Hacemos que al pasar el cursor por los iconos parezca que se iluminan
if x0 >=55 and x0 <= 140 and y0 >=80 and y0 <= 165 then
screen:blit(55,80,juegonuevo2)
end
if x0 >=197 and x0 <=282 and y0 >=80 and y0 <=165 then
screen:blit(197,80,creditos2)
end
if x0 >=340 and x0 <=428 and y0 >=80 and y0 <=165 then
screen:blit(340,80,opciones2)
end
--Hacemos que al presionar X cargue el script que corresponda
if x0 >=55 and x0 <= 140 and y0 >=80 and y0 <= 165 and pad:cross() then
contador:start()
tiempoActual = contador:time()
if tiempoActual >= 500 and tiempoActual <= 600 then
screen:blit(55,80,juegonuevo3)
end
if tiempoActual >= 1500 then
dofile("Archivos/juegonuevo.lua")
end
end
if x0 >=197 and x0 <=282 and y0 >=80 and y0 <=165 and pad:cross() then
contador:start()
tiempoActual = contador:time()
if tiempoActual >= 500 and tiempoActual <= 600 then
screen:blit(197,80,creditos3)
end
if tiempoActual >= 1500 then
dofile("Archivos/creditos.lua")
end
end
if x0 >=340 and x0 <=428 and y0 >=80 and y0 <=165 and pad:cross() then
contador:start()
tiempoActual = contador:time()
if tiempoActual >= 500 and tiempoActual <= 600 then
screen:blit(340,80,opciones3)
end
if tiempoActual >= 1500 then
dofile("Archivos/opciones.lua")
end
end
<----END Menu Anime Contest---->
PD: A lo que me referia con lo de cargar animaciones era por medio de la funcion screen:blit pero veo que no jaja
Saludines
¡Visca el Barça y Viva España!
eso
te trate de explicar viejo pero ya todo anda vien :)
lo mismo estoy haciendo
y es facilicimo solo tiene k saber las coordenada donde esta el boton y si el mouse esta dentro de ese boton por ejemplo:
mousex = 0 "posicion x del mouse"
mousey = 0 "posicion y del mouse"
presionado = false "esto indica si esta presionando el boton"
pad = Controls.read()
"En el bucle dibuja el boton yo pondre una posicion de mi mente"
ahora averigua donde esta la coordenada "x" y la "y" del boton poniendo en pantalla la cordenadas del mouse:
screen:print( 340,20,"mouse x"..mousex, blanco) "enseña la posicion x del mouse"
screen:print( 340,30,"mouse y"..mousey, blanco) "enseña la posicion y del mouse en pantalla"
ahora lo k tienes k hacer es mover el mouse desde la psp y ver la posicion x de ambos lados de la izquierda y derecha y pondra esto de codigo.
if pad:cross() and mousex > 60 and mousex < 120 <
"todavia no hemos terminado aqui solo keria decir k si es mayor a 60 se puede realizar lo k pediremos lo mismo con menor a 120"
ahora chekea desde la psp el principio "la parte alta" de la coordenada "y" del boton y la parte de abajo k es el final del boton.
ahora ponemos
if pad:cross() and mousex > 60 and mousex < 120
and mousey > 80 and mousey < 130 then
presionando = true
else
presionando = false
end
hay hicimos lo mismo k ahorita solo k fue con la coordenada "y" del boton y entonces si cumple con todo los codigos entonces presionando es igual a true y si nada sucede se cambia a false entonces si la variable tiene de valor true sinifica k esta siendo presionado el boton.
entonces tiene k poner si presionando es igual a true k cambie a la imagen presionada y si no esta siendo presionando k cambie a la imagen actual del boton.
bueno pasate por la seccion de tutoriales de lua en colisiones si no me entendiste xD.
Un salu2
Pues para lo del cursor
yo pondría lo que tu dices;
botonx = 50
botony = 50
botonanch = 100
botonalt = 50
if cursorx > botonx and cursory > botony and cursorx < botonanch + botonx and cursory < botonalt + botony and pad:cross() then
--hacer tal
end
Así para cada botón cuadrado
Yo te recomiendo que uses una función, para no tener que escribir eso 20 veces lol (en plan "if selected(50,50,100,100) then blabla end"
Saludos!
PD: creo que no se puede hacer lo de la imagen gif, al menos todavía :-(
https://github.com/CarlosGS/
Pues
Lo estabas haciendo bien, mira:
Hay dos formas, aunque es lo mismo XD:
if pad:cross() and oldpad:cross() ~=pad:cross() and current_selection = 1 then
dofile("algo.lua")
break ---> creo que esto no es necesario.
end
--La otra forma:(es lo mismo, solo que mas facil)
if pad:cross() and current_selection = 1 then
dofile("algo.lua")
break
end
Lo estabas haciendo bien XD, sigue tu instinto y si lo haces mal, siempre podras corregirlo
Saludos.
Manual del Perfecto Votante Para un voto libre y justo!.
TheGCProjects
Yo mismo hice un tuto
Pásate por la sección de Snnipets en los tutos avanzados. Ahí tienes como hacer un menú gráfico y sencillo.
Saludos
Me referia a ese tuto
Me referia a ese tuto
Eso esta bien lo de las
Eso esta bien lo de las coordenadas y si quieres hacer animaciones sin usar librerias vete al tutorial de uso de sprites solo que en vez de hacerlo con sprites hazlo con imagenes cualquiera y con un contador
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
Lo que dices
de si pulsas entre tal y cual THEN DOFILE("algo.lua") esta bien. Yo hice algo parecido en mi juego pero yo no puse un cursor. Puedes mirar el código fuente de juego y hacerte una idea si quieres.
Un saludo!
Muchas Gracias
Muchas Gracias a los 2 por las respuestas (la verdad que las necesitaba jeje) y mirare tu codigo por si no lo consigo hacer asi
Salu2
¡Visca el Barça y Viva España!