Anuncios Google

[Ayuda] Crear Menu en Lua

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...

  1. 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.
  2. 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!


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 _Dark_Cloud_

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!

Imagen de yoan03

eso

te trate de explicar viejo pero ya todo anda vien :)

Imagen de yoan03

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

Imagen de carlosgs

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 :-(

Imagen de Guillermo_Cornielle

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 Wink

 

Saludos. 


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Imagen de Tanos

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

Imagen de P22

Me referia a ese tuto

Me referia a ese tuto

Imagen de P22

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

Imagen de YeahProducciones

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!


Imagen de _Dark_Cloud_

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!

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.