Juego de rol 2D 77: interfaz de usuario II

Continuamos programando la interfaz de usuario de nuestro juego de rol. En la última ocasión, dejamos simplemente la barra de vida que, recordemos, no funciona realmente, sólo es “decorativa” por el momento.

Aun así, hacer que las barras de la interfaz funcionen de verdad, respondiendo a las estadísticas del usuario en tiempo real, no es demasiado complejo. La única diferencia es que en vez de dibujarlas con un ancho fijo, tendremos que hacerlo usando un ancho variable que nos proporcionará el propio objeto del jugador.

Aun así, no podemos aplicar directamente el valor que nos proporcione el jugador, sea vida, poder mágico, resistencia, experiencia o cualquier otro valor. Para que las barras siempre tengan el mismo tamaño y sean consistentes, debemos calcular el valor porcentual de los atributos del jugador.

De esta forma, la barra no podrá nunca exceder un determinado ancho e invadir otros componentes; tampoco será posible que la barra alcance valores negativos y empiece a crecer hacia el lado opuesto del que debería.

Por ese motivo, siempre será necesario que convirtamos los atributos del jugador a valores porcentuales.

Otra cosa que vale la pena mencionar es que en el vídeo se demuestra una programación a objetos algo pobre, ya que existen una serie de métodos (los encargados de generar las diversas barras) que son sumamente repetitivos y cuya única diferencia son apenas algunas variables que difieren. Esto significa que probablemente, sería mejor idea crear una clase “Barra” que podamos usar para crear todas las barras que queramos. Dicha clase debería ser capaz de guardar las variables necesarias para la barra y además también debería ser capaz de dibujar la barra en cuestión dentro de la interfaz de usuario.

En cualquier caso, una vez resuelta esta parte de la interfaz de usuario, en el siguiente episodio nos ocuparemos de crear algunas ranuras de objetos y de dibujar las teclas que habría que pulsar para acceder a cada ranura rápida.

¿Te ha gustado? ¡Colabora en Patreon!

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *