Patrocinadores

www.soporteoptico.com

www.zonavirtual.es

03. Crear una barra de salud.

Tutoriales Avanzados Homebrew

Mostrar una barra de salud es algo muy común en la mayoría de juegos. Puede ser algo confuso para los nuevos programadores, quienes no saben como afrontarlo, pero es un proceso muy sencillo una vez se vean la manera de hacerlo. Empecemos.

Primero crearemos dos objetos color. Usaremos el color rojo para la barra de salud y el blanco para escribir texto en pantalla.

--Creamos los Colores.
rojo = Color.new(255,0,0)
blanco = Color.new(255,255,255)

Ahora crearemos arrays para almacenar información de la barra de salud y del personaje. Se podría hacer con variables pero usaremos arrays ya que en un juego real será más sencillo añadir más tipos de datos tanto para el personaje como para la barra de salud. Crearemos el array para la barra de salud y usaremos un tipo para referirnos a la posición de la barra.

--Array de la barra.
barraSalud = {}
barraSalud.y = 10

Ahora crearemos el array para el personaje. En nuestro juego de ejemplo solamente necesitaremos almacenar en el array la salud del personaje.

--Array del personaje.
personaje = {}
personaje.salud = 100

Ahora empezaremos nuestro bucle principal, limpiaremos la pantalla y pondremos el código de entrada de botones:

--Bucle principal
while true do
   screen:clear()
   pad = Controls.read()

Ya hemos empezado nuestro bucle principal, que es la parte de nuestro programa que se repetirá una y otra vez comprobando las modificaciones en el juego.

Nuestro siguiente comando dibujará la barra de salud en pantalla. Usaremos el comando drawRect. Este comando simplemente dibuja un rectángulo relleno:

screen:fillRect(10,10,personaje.salud,barraSalud.y,rojo)

Este comando también puede usarse para dibujar un rectángulo sobre una imagen. Los dos 10 son la posición "x" e "y" en la que dibujaremos el rectángulo. Los dos siguiente argumentos son los arrays que hemos creado anteriormente. personaje.salud será la anchura del rectángulo, así si la salud de nuestro personaje incrementa o decrementa, queda reflejado en la barra. barraSalud.y será la altura del rectángulo, la cual hemos puesto a 10 anteriormente. Este valor nunca cambiará. Puedes cambiar la variable "y" por la "x" si quieres una barra de salud vertical.

Lo siguiente será mostrar la salud de los personajes en pantalla justo debajo de la barra de salud, así podrás ver la salud tanto en texto como en gráfico.

screen:print(10,30,personaje.salud,blanco)

Ahora, para este juego de ejemplo, vamos a incrementar la salud si el botón Arriba es pulsado y mantenido y vamos a decrementar si el botón Abajo es pulsado y mantenido. Este es el código para el botón Arriba:

if pad:up() and personaje.salud < 100 then
     personaje.salud = personaje.salud + 0.5
  end

Este código incrementara la salud del personaje en 0.5 si el botón Arriba es presionado y si la salud del personaje es inferior a 100, ya que nuestra salud como máximo será de 100.

Ahora el código para el botón Abajo:

if pad:down() and personaje.salud > 0 then
     personaje.salud = personaje.salud - 0.5
  end

Este código es el mismo que para el botón Arriba excepto que la salud decrementará en 0.5 si se pulsa el botón Abajo, siempre y cuando que nuestra salud sea inferior a 0. Sin la comprobación del 0, nuestra salud entraría en números negativos.

Terminemos el bucle principal y el tutorial:

screen.flip()
  screen.waitVblankStart()
end

5
Votos totales: 5 (1 voto)

Comentarios

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 ALoGeNo

JUala....parece facil no?

Nas.. me podeis decir que lenguaje de programacion es ese? eso es C?, yo esque programaba en basic con el spectrum.. y nunca me anime con c ni java ni na.. pq no menteraba.. eso que es? podeis dar alguna referencia?, no he buscado nada.. eh.. asique.. si me veis comodo.. me lo decis. ;D asias.

Imagen de ELeNDeR

Este lenguaje de

Este lenguaje de programación es LUA, sencillo para los programadores noveles. Si quieres una referencia, qué mejor que la que ofrecemos en esta misma web:

http://beta.pesepe.com/index.php?q=node/789

Saludos. 

gracias, hay que ver como

gracias, hay que ver como estas de trabajador

Imagen de ELeNDeR

Se hace lo que se puede

Se hace lo se que puede, aprovecho cuando tengo un ratillo para traducir. Ya tengo pendiente uno nuevo de la otra sección de Lua, seguramente para el viernes que viene ya lo tenga traducido, probado y publicado. Lo único que espero es que la gente le saque provecho. Saludos.

Muchas gracias por el

Muchas gracias por el tutorial! Este me va a venir muy bbioen para mi juego... ^^

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.