Hoy traigo un tutorial de un cursor en LuaDev con la posibilidad de poder moverlo por panalla.
El motivo por el cual lo hago es para que la gente que acaba de dempezar a programar pueda hacerlo, aparte de que el Tuto que hay por esta Web esta mal.
Empezemos.
1º Creamos una tabla con las coordenadas en pantalla y la imagen del cursor:
cur = {x=240,y=136,imagen = image.load("cur.png")}
2º Creamos la función para poder mover el cursor por la pantalla.
En este caso nos permitira moverlo con el Pad Analógico:
function movimiento() if controls.analogx() > 40 and cur.x < 480 then cur.x = cur.x + 4 end if controls.analogx() < -40 and cur.x > 0 then cur.x = cur.x - 4 end if controls.analogy() > 40 and cur.y < 272 then cur.y = cur.y + 4 end if controls.analogy() < -40 and cur.y > 0 then cur.y = cur.y - 4 end end
Hasta ahora facil ¿Verdad? pues seguimos.
3º Iniciamos el bucle y nombramos las funciones, imprimimos el cursor en pantalla y hacemos el Flip:
while true do controls.read() movimiento() limite() cur.imagen:blit(cur.x,cur.y) screen.flip() end
Pues ya tenemos nuestro cursor hecho xD
Aqui dejo el code entero y comentado:
--Cursor By: Tutos14 --Solo para PSP.Scenebeta cur = {x=240,y=136,imagen = image.load("cur.png")} --Creamos una tabla con las coordenadas en pantalla y la imagen que usaremos function movimiento() if controls.analogx() > 40 and cur.x < 480 then cur.x = cur.x + 4 end if controls.analogx() < -40 and cur.x > 0 then cur.x = cur.x - 4 end if controls.analogy() > 40 and cur.y < 272 then cur.y = cur.y + 4 end if controls.analogy() < -40 and cur.y > 0 then cur.y = cur.y - 4 end end while true do --Iniciamos el bucle controls.read() --Iniciamos la lectura de los botones movimiento() --Nombramos la función del movimiento cur.imagen:blit(cur.x,cur.y) --Mostramos el cursor screen.flip() --Hacemos el Flip end --Cerramos bucle
Por último nos quedaria guardarlo en un script.lua y probarlo
Aqui dejo el cursor que use yo en este caso:
PD: Guardarlo con el nombre cur.png y guardarlo en la carpeta donde se encuetra el Script.lua
Captura:
Un saludo y espero que haya valido la pena ;)
By PerezRE
Excelente tutorial. Muy bien explicado
Mas facil...
En el bucle te faltaria
En el bucle te faltaria esto:
pelota.imagen:blit(pelota.x,pelota.y)
error
analiza la funcion movimiento.
La funcion que he puesto sirve para infinitas imagenes.
xD, no me di cuenta
xD, no me di cuenta
Bueno
Si seguimos así con que el usuario sepa como se copia van a tener una aplicación entera hecha.
Ya hay tutoriales de como mover personajes (Que es lo mismo) y después en el tutorial de modulación sale algo parecido. Aparte de que parte del código se puede simplificar.
if controls.analogx() > 40 and cur.x < 480 then cur.x = cur.x + 4 end
if math.abs(controls.analogx()) > 40 then cur.x+controls.analogx()/32 end
, ahorrandonos 2 líneas, y lo mismo con controls.analogy().Desde que descubrí las funciones
math.max()
ymath.min()
gracias a chimecho, he visto que te puedes ahorar 4 lineas en 1.También es mejor que utilices
cur = {image.load("cur.png"), x = 240-cur.image:width()/2, y = 136-cur.image:height()/2}
para tener el cursor mejor centrado.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).
Buen Tuto. Seguro que los más
Buen Tuto. Seguro que los más novatos lo aprecian.
Si, eso creo. Antes cuando no
Si, eso creo.
Antes cuando no sabia nada de programación estaba como loco para encontrar como hacer un cursor xD
Creo que todos xD
Creo que todos xD
Pues si integras los límites
Pues si integras los límites a la función de movimiento queda más limpio el code:
Y funciona igual =)
Muchas gracias Rober. No se
Muchas gracias Rober.
No se me habia ocurrido hacerlo asi ;)
Ahora edito.
No hace falta crear 2
No hace falta crear 2 funciones.
Se puede meter todo en el mismo buble ^^
Saludos.
para moi es tener más orden
para moi es tener más orden al final de cuentas, porque así las puedes almacenar en un fichero, las llamas con un dofile y despues ya en el bucle sólo las pones, es cuestion de gustos el resultado es el mismo.
Un saludo
Administrador de www.SceneBeta.com y Android
Ya, pero ami me gusta más
Ya, pero ami me gusta más haciendo funciones y dejar el bucle más limpio ;)