Registrarse

[RPG - Scripting] [Escuela]Base Scripting Essentials - Clase 8

Estado
Cerrado para nuevas respuestas.

Jessie

What goes around, comes around

Clase 8 : Condicionales


Objetivo​

Durante esta clase se enseñarán las diferentes maneras de crear condicionales y como aplicarlos para el desarrollo de interfaces.

Introducción​

En clases anteriores vimos como crear y manipular gráficos y textos en la ventana del juego, además de como crear iteraciones y ciclos para dar diferentes efectos. En esta clase aprenderemos como finalizar esos ciclos e iteraciones mediante el uso de condicionales. Ya hemos visto algunos ejemplos de condicionales, pero ahora los veremos más a fondo.
Para facilitar la comprensión del tema, he modificado los nombres de los temas.

8.1 Condicionales básicos​

Un condicional, como su nombre lo indica, es un comando que verificará si una condición se esta cumpliendo. En Rpg Maker XP existen varias maneras de comprobar si una condición se ha cumplido.

La manera más común es usando el comando if, que verificará el resultado de una variable o función vinculada. Al evaluar la condición dada, se realizará lo que esta definido dentro del if, solamente si la condición se cumple. Al usar este comando, siempre se debe terminar con un end.


Al crear un condicional es importante entender que el trabajo del operador = es igualar un valor a una variable por ejemplo val = 10, aquí la variable val tendrá el valor del Integer 10. Mientras que el operador == tiene el trabajo de comparar una condición con cierto valor, por ejemplo val == 10, aquí se comparará si el valor de la variable val es igual al Integer 10.

En caso de que la condición no se cumpla, todo lo que este definido dentro del if no se realizará. En caso de que se desee crear una condición adicional que se cumpla cuando la primera condición no lo haga, se puede realizar de dos maneras.


En caso de que se requiera comprobar varias condiciones dentro del mismo condicional, se puede añadir el comando elsif, el cual tiene la capacidad de realizar una nueva comparación en caso de que la condición superior no se cumpla.


De la misma manera en que el comando if verifica si la condición se cumple, el comando unless verificará lo contrario, este comando funciona de la misma manera que el if, solo que te verifica si el valor de la comparación no se cumple.


Para verificar una condición de manera más rápida, Rpg Maker XP tiene métodos modificados de los comandos anteriores, de esta manera podemos realizar una comparación de manera más sencilla.


8.2 Múltiples condicionales con la misma variante.​

Otra manera de manejar condicionales es mediante el comando case, el cual verificará el contenido de una sola condición dada y te regresará un resultado dependiendo del valor de esa condición. Este comando evaluará una lista de posibles respuestas usando el comando when, el cual tiene la capacidad de verificar más de un solo posible resultado. En caso de que ninguna de las posibles respuestas apliquen, se puede usar el comando else para crear una condición adicional. Al igual que con el if y el unless, el case necesita un end para marcar el final de la condición.


El comando when también es capaz de evaluar varias posibles respuestas simultáneamente, los valores de estas deberán ser separados por comas.


8.3 Controles como condicionales​

Al crear una interfaz, es común querer determinar una acción con base a la tecla presionada. Rpg Maker XP define el uso del teclado dentro del module Input, este module al igual que otras instancias tiene sus propios métodos, los cuales ayudan a determinar cual tecla esta siendo oprimida y bajo que circunstancias sucede.


Adicionalmente, Essentials contiene un par de métodos para verificar la tecla que ha sido presionada mediante su valor hexadecimal, estos métodos no aplican para Rpg Maker XP.


Para usar alguno de los controles dentro de un condicional, solamente se necesita seleccionar el comando que se desea usar, seguido del método apropiado que verifique si una tecla determinada ha sido presionada.


En el ejemplo anterior hemos colocado como condicional el método press?, así que durante el ciclo cada vez que se oprima la tecla C, el condicional mostrará el mensaje que contiene.

Ahora aplicando todo lo que hemos visto en la clase anterior con los ciclos e iteraciones, además de lo visto en la clase de hoy acerca de los condicionales, ya tenemos el conocimiento y las herramientas para crear una interfaz mejor desarrollada.


Hay que recordar que debido a que se necesita oprimir la tecla C para poder interactuar con un npc, si nuestra función usa el método press?, el module Input tomará en cuenta que al oprimir C para interactuar con el npc como la misma acción para finalizar nuestro ciclo, por esta razón es mejor usar el método trigger?, ya que este verificará si la tecla C se ha oprimido por segunda vez. Para poder usar el método press?, se necesitará crear una pequeña pausa para que el module Input pueda diferenciar cuando se oprime la tecla C para interactuar con el npc y cuando se oprime para romper el ciclo.


Tarea de la clase 8​

Durante esta clase vimos como usar diferentes condicionales.

Con el propósito de reforzar lo aprendido, se deberá realizar lo siguiente :
  • Utilizar la interfaz simple que hicieron para la clase 5 pero agregando un ciclo en el cual utilicen al menos uno de los métodos del module Input para romper el ciclo. Pueden usar los bitmaps creados desde el overlay o sustituirlos por bitmaps creados con el class Sprite.

Esta Tarea se entregará desde discord, ya sea por el canal #tareas en el servidor CreadoresEssentials o mediante un mensaje privado.
Pueden usar capturas de pantalla para mostrar el código que han creado o mediante un archivo de texto con el código. Todos los archivos deberán ser enviados juntos en un archivo .rar para poder facilitar su manejo.
Tienen como plazo límite el día Lunes 8 de Abril antes de que la siguiente clase sea publicada.

 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba