Ir al contenido principal

RGSS Básico - Capítulo 3 (a): Haciendo ventanas


Buenas, hoy vamos a trabajar con un nuevo tutorial de RGSS Básico sobre variables, operacionales y ventanas. Estará dividido en dos partes para no alargar mucho esto (a y b).

Empecemos por lo primero: ¿qué son las ventanas?

Las ventanas son cada uno de los recuadros que vemos por el maker: en el menú, en los diálogos, etc. (esto creo que ya lo expliqué en algún momento o tengo un déjà vu). Estas ventanicas deben ser llamadas desde algún lado, porque no aparecen por arte de magia en nuestros menús. Si tenemos una ventana en donde hemos puesto class Window_Pepe, para llamarla bastaría con definir una variable así:

@ventana = Window_Pepe.new

Las ventanas son una clase especial de cualquier maker y deben hacerse teniendo en cuenta varias cosas. Todas las ventanas que aparecen predefinidas son como hijas de Window_Base (ya predefinida en el maker), la cual contiene métodos que son usados en muchas otras ventanas. Por lo que si nos vamos a muchas de las ventanas ya definidas por el maker veremos que su clase está definida así:

class Window_Help < Window_Base

Así Window_Help usará métodos de Window_Base como draw_actor_name y no ocurrirá ningún error.

Además, Window_Base hereda atributos de Window, una super clase implícita en el RPG Maker XP y a la que no puedes acceder tan fácilmente. Puedes ver su código y funciones en la ayuda del maker.

Las ventanas son llamadas por las escenas (Scene_Menu, Scene_Shop, etc), que son las que muestran el conjunto de ventanas, por ejemplo en el menú.

Las estructuras de las Window (ventana) deben componerse como mínimo de dos métodos que jamás pueden faltar: def initialize y def refresh. El primero crea la ventana (cuando se llama con el método .new) y el segundo escribe su contenido.

Si necesitáramos por cualquier razón universal, actualizar algún contenido de la ventana debemos crear otro método más, un método update. Dentro de este update debemos hacer un llamamiento al método refresh para volver a escribir el nuevo contenido (y algunas cosas más).

Tranquilidad, vamos por pasos para entender todo esto. Visualicemos el Window_Gold (que es la ventana más simplona del maker):


NOTA: Este es el esqueleto que cualquier ventana debe tener:

class Mi_ventana < Window_Base

   def initialize
      super(x, y, ancho, alto)
      self.contents = Bitmap.new(width - 32, height - 32)
      refresh
   end

   def refresh
       self.contents.clear
   end

end

La sentencia super al iniciar nuestra ventana se encarga de especificar la
posición con respecto al eje X (el margen vertical izquierdo), la posición con respecto del eje Y (margen horizontal superior), el ancho y el alto de la ventana.

Con self.contents = Bitmap.new(width - 32, height - 32) definimos el contenido (contents) de la propia ventana (por eso usamos self, para referirnos a la misma ventana) como objeto Bitmap. Las letras width y height vienen del ancho y alto de la ventana respectivamente.

Con self.contents.clear, que limpia la ventana de textos e imágenes, dejándola como una ventana nueva y vacía. Tras esto podemos empezar a dibujar los contenidos de nuestra ventana.

Un ejemplo del método update lo vemos en Window_PlayTime, la ventana que en el menú va dibujando el tiempo que pasa:


Como es algo que debe estar actualizándose con el paso del tiempo debemos utilizar super sin ningún argumento y luego el refresh para volver a dibujar lo que va cambiando.

Cada vez que necesitemos escribir cualquier cosa en nuestra ventana debemos utilizar self.contents seguido de alguno de los métodos que haya definidos en Window_Base (debajo de update) y en la clase Bitmap (utiliza la ayuda del maker y busca Bitmap para obtener más información). Esto debe ir en refresh, que es lo que dibujará nuestra ventana. Básicamente, hay que tener en cuenta eso, pero no os preocupéis que trataremos todas (o casi todas) las posibilidades creando una bonita ventana en la segunda parte de este tutorial.

Como en la segunda parte vamos a poner chorradas en nuestra ventana, vamos a aclarar algo muy importante: los operacionales.

Son simplemente símbolos que hacen operaciones (sumar, restar, dividir, multiplicar...):


+ : signo de suma
 - : signo de resta
 * : signo de multiplicación
 / : signo de división
 ** : signo de elevación a un exponente
 % : signo de resto de división

  • Calculando la raíz de un número: la raíz cuadrada de 2 es lo mismo que 2^1/2 (2 elevado a 1/2), por lo tanto la raíz x de un número i se escribiría: i**(1/x)
  • Porcentaje: el 50% de 24 se obtiene como 24*(50/100), por lo que el porcentaje x del número i es: i*(x/100)
  • Valor absoluto: es el valor de un número siempre en positivo, basta con poner (número).abs
  • Sumar (o restar) un valor a una variable: sería la variable num que queremos que vaya sumando 10 cada cierto tiempo. La forma lógica sería num = num +10, pero la forma más simple y fácil de hacer es num += 10.
Y hasta aquí el tutorial, próximamente tendrán la parte (b) donde vamos a profundizar en estos conceptos creando una ventana, por lo que será un tutorial práctico 99%. En ella le vamos a añadir imágenes, datos, textos y poco más.

ÍNDICE DE TUTORIALES DE RGSS:
  1. Conceptos básicos
  2. Hola Mundo en RGSS
  3. Haciendo ventanas (1)
  4. Haciendo ventanas (2)

ESTO ES UN TUTORIAL ORIGINAL NO COPIES, DISTRIBUYE Y ACREDITA A SUS VERDADEROS AUTORES

Creative Commons License

Comentarios

Entradas populares de este blog

¿Puedo vender mis juegos de RPG Maker?

Hoy traigo una entrada interesante, o eso creo. Muchos me han preguntado esto muchas veces y también he visto lo mismo por los foros o diferentes comunidades de RPG Maker . Así que vengo a aclarar dudas sobre el tema: ¿se pueden vender los juegos de RPG Maker?, ¿cómo se hace de manera legal?

Cómo usar el RPG Maker XP (tutorial en español)

RPG Maker es el nombre de una gama de programas muy conocidos para crear juegos de rol en 2D en PC. El RPG Maker XP es una versión de esta serie de programas donde se introdujo por primera vez la programación en el lenguaje Ruby como una opción para elaborar los juegos. RPG Maker XP viene pensado con una serie de herramientas que te permitirá crear juegos con elementos que poseen los juegos rol y estos se pueden ampliar hasta límites increíbles gracias al uso de scripts. Las principales características que trae el RPG Maker XP son: sistema de batalla por turno, sistema de party/compañeros, base de datos para ítems, habilidades, armas, armaduras... Estas herramientas te permiten desde crear los mapas hasta configurar los eventos del juego sin escribir ni una sola línea de código . (Existen varias versiones del RPG Maker posteriores al RPG Maker XP, la última el RPG Maker MZ que utiliza javascript en vez de Ruby) .  DESCARGAR RPG MAKER XP :  70% de descuento » Si quieres

Tutoriales Rpg Maker XP - Eventos Conceptos 1/2

Para nivel: Después de un descanso, seguimos con los tutoriales. Una vez dominado cómo funciona y qué hace la base de datos, comenzamos con la teoría sobre los eventos. Mi idea era comenzar con la creación de mapas, pero saranunu no tiene los tutoriales de mapeo listos (porque los está haciendo en vídeo), así que nos conformaremos con los eventos. Antes de nada, aclaro: los eventos se crean en los mapas (a no ser que sea eventos comunes que se hacen desde la base de datos). Empezaremos primero con las opciones que nos permiten crear un evento.