Mostrar una barra de salud es algo muy comun en la mayoria 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 informacion de la barra de salud y del personaje. Se podria hacer con variables pero usaremos arrays ya que en un juego real sera mas sencillo añadir mas 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 posicion 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 codigo 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 repetira una y otra vez comprobando las modificaciones en el juego.
Nuestro siguiente comando dibujara la barra de salud en pantalla. Usaremos el comando drawRect. Este comando simplemente dibuja un rectangulo relleno:
screen:fillRect(10,10,personaje.salud,barraSalud.y,rojo)
Este comando también puede usarse para dibujar un rectangulo sobre una imagen. Los dos 10 son la posicion "x" e "y" en la que dibujaremos el rectangulo. Los dos siguiente argumentos son los arrays que hemos creado anteriormente. personaje.salud será la anchura del rectangulo, asi si la salud de nuestro personaje incrementa o decrementa, queda reflejado en la barra. barraSalud.y sera la altura del rectangulo, la cual hemos puesto a 10 anteriormente. Este valor nunca cambiara. Puedes cambiar la variable "y" por la "x" si quieres una barra de salud vertical.
Lo siguiente sera mostrar la salud de los personajes en pantalla justo debajo de la barra de salud, asi podras ver la salud tanto en texto como en grafico.screen:print(10,30,personaje.salud,blanco)
Ahora, para este juego de ejemplo, vamos a incrementar la salud si el boton Arriba es pulsado y mantenido y vamos a decrementar si el boton Abajo es pulsado y mantenido. Este es el codigo para el boton Arriba:
if pad:up() and personaje.salud < 100 then personaje.salud = personaje.salud + 0.5 end
Este codigo incrementara la salud del personaje en 0.5 si el boton Arriba es presionado y si la salud del personaje es inferior a 100, ya que nuestra salud como maximo sera de 100.
Ahora el codigo para el boton Abajo:
if pad:down() and personaje.salud > 0 then personaje.salud = personaje.salud - 0.5 end
Este codigo es el mismo que para el boton Arriba excepto que la salud decrementara en 0.5 si se pulsa el boton Abajo, siempre y cuando que nuestra salud sea inferior a 0. Sin la comprobacion del 0, nuestra salud entraria en numeros negativos.
Terminemos el bucle principal y el tutorial:
screen.flip() screen.waitVblankStart() end
Comentarios
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.
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
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... ^^