Jueves, 2017-06-22, 3:21 PM
Web Homebrew PSP - PS VitaInicio

Registrarse

Entrada
Le saludo Huésped | RSS
Búsqueda

Formulario de entrada

Menú del sitio

Encuesta
Si eres nuevo ¿Como nos encontraste?
Total de respuestas: 101

Estadística

Total en línea: 1
Invitados: 1
Usuarios: 0

Inicio » 2010 » Diciembre » 28 » Tutorial de como cargar olas en lua DEV
0:49 AM
Tutorial de como cargar olas en lua DEV

Hoy vamos hacer que nuestro homebrew cargue el efecto de "waves" (Codigos son hechos para Lua DEV pero se pueden hacer en otros Lua's

Autor: DeViaNTe


Antes de programar, a dibujar!

Bien, el profundo secreto de este efecto no es más que una simple imagen estática en movimiento. Primero creamos una imagen 480x272, y dibujamos un gradiente lineal horizontal que lo atraviese, con la configuración de colores que más os guste. Como las olas en blanco ya las tengo hechas para Ionos, no quería repetirme, asi que aquí viene un efecto "plasma".

 

Sí, es transparente, y sólo tiene un gradiente. Abajo os dejo los links igualmente.
Es un degradado de blanco, a rojo, a transparente, "aderezado" con un toque amarillo en el centro. ( Este "potoshó" hace milagros...)

Una vez la imagen planita, nos disponemos a deformarla, nos valdremos de algún software de edición fotográfica, aplicando algún filtro de distorsión ( o en el "potoshó" la manita mismo sirve, la de deformar las modelos, esa xD ) y "ondeamos" nuestro gradiente tal que así:

 

Todo listo jefe! Y ahora?

Ahora, un poco de teoría. En los Luaplayers, o en cualquier software de pc, o donde intervengan gráficos 2D, al blitear las cosas, se van bliteando encima. Es decir, si bliteamos un cuadrado grande en el centro de la pantalla y luego uno pequeño, de distintos colores, se verán, pero si primero bliteamos el pequeño y luego el grande, no se verá, pq el grande lo hemos puesto más tarde, es decir, "encima". Con esta pequeña teoría ya tenemos una idea de cómo hacer profundidad. Objetos más lejanos, o al fondo de las cosas, se blitean primero. El resto, al final y por orden. [Primero en blitear, abajo del todo, último en blitear, arriba del todo, fácil no?]

Bien, ahora, cómo se crea un efecto "scroll" infinito? Pues no es más que poner la imagen, y moverla, de derecha a izquierda, y cuando llegue al principio, volverla a colocar al final. Veamoslo más claro:

Al iniciar nuestro "bucle" o función, o lo que hagamos, empezaremos pintando la ola (cuadro rojo), en x=480, e iremos decrementando, así se irá moviendo hacia la iziquierda como podemos ver en la imagen 2. Y llegará un momento que llegue a 0,0 como veremos en la imagen 3.


Si cuando llegamos a 0, volvemos a poner la imagen en 480, verán que se repite siempre, estas imagenes: 1-2-3-1-2-3...
Pero, hay un hueco a la izquierda!! Tranquilos! Ese hueco siempre quedará a la izquierda, pues, en vez de blitear una sola imagen, la bliteamos dos veces! Una en la posición que le toca, y la otra en la posición que le toca, menos los 480 pixeles de largo que hace la imagen, y ya se tocarán, y será una "cinta" como la vista en la imagen 4. Si siguen el cuadro de la derecha, lo mueven a la izquierda, y llega hasta 0,0 y lo ponen otra vez como está, verán que en la pantalla siempre sale una ola, y se mueve hacia la izquierda!

Ya tenemos nuestras olas!

Aviso al consumidor: Este tutorial ha sido cortesía del team GCrew, es posible que tras leerlo comienzes a entender mejor como hacer tus homebrews más estéticos. Es posible que ahora digas, pero con esta teoría tan fácil sale algo medianamente bonito? Es completamente normal, los tutoriales de nuestro team son completamente adictivos. Se aconseja dejar de leerlos.

Aviso al programador: Cuidadín al usar velocidades no enteras en el movimiento de la imagen, pq lua hace caso omiso de los decimales al blitear, y posiblemente veais una "rallita" hueca de un pixel entre imagen e imagen. En dicho caso recomiendo usar math.ceil() o math.floor() sólo a la hora de hacer los blits!.

Código resultante de ejemplo:

Llega la hora del código!
(Yo he hecho el código en LuaDEV, pues estoy acostumbrado y no me acuerdo de HM, pero las funciones son básicas).
Este código directamente no os funcionará, (más que nada pq el while true do de abajo está inventado, no hay ni íconos ni fondo, pero si quitamos íconos y fondo, debería funcionar a las mil maravillas nuestras olas).

-- Cargamos la imagen:
ola = image.load("miola.png");
-- Configuramos unas variables:
velocidad_ola = 0.4;
posicion_ola = 480; -- posicion en x, pues y = 0.
 
-- Y una función que llamándola una sola vez haga el trabajo sucio!
function pintarola()
 -- movemos la ola.
 posicion_ola = posicion_ola - velocidad_ola;
 
 -- evitar salirnos! si llegamos a 0, volver a 480!
 if ( posicion_ola <= 0 ) then posicion_ola = 480; end
 
 -- pintar la ola en la posición! (recordar usar math.floor o ceil!)
 image.blit(ola,math.ceil(posicion_ola),0);
 
 -- pintar su gemela para que parezca infinito!
 image.blit(ola,math.ceil(posicion_ola)-480,0);
end
 
 
 
-- Vale, ahora imaginamos que nuestro homebrew, pone un fondo de pantalla.
-- y las olas encima
-- e íconos encima. (recordar lo de abajo primero!)
 
while true do
 -- poner fondo!
 image.blit( fondo , 0, 0); -- cambiar por vuestros comandos!
 
 -- pintar olas!
 pintarola();
 
 -- poner íconos!
 -- bla bla bla
 
 -- y por último, flip!
 screen.flip();
end

Eso es todo por ahora pronto le traere mas....

Descarga del pack (solo usuario registrado)

Categoría: Tutorial | Visiones: 679 | Ha añadido: Kenta15 | Ranking: 4.3/3
Total de comentarios: 3
2  
Sería un buen detalle que le agregarás algún video de como resulta este trabajo o alguna captura. Donde dice 'Descarga del Pack' no me aparece nada. Por el resto esta muy bueno. Saludos.

3  
En la descarga no aparece nada porque todavia no he subido el pack lo a^adire hoy cuando lo tenga todo en un .rar jeje

1  
se ve bien
te felicito

Solamente los usuarios registrados pueden añadir los comentarios.
[ Registrarse | Entrada ]
Pagina en Facebook

Categorías de la sección
Aplicaciones [31]
Games [7]
Launcher's [26]
Plugins [24]
Noticias [33]
Emuladores [4]
Tutorial [8]
rumores [1]
PS Vita [2]
Todas las noticias y homebrews para PS Vita.

La Web Existe....

Usted..
Usted esta usando para navegar Hoy es 2017-06-22

Copyright TotalPSPScene 2010- © 2017