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


Like Tree6Gracias
  • 6 Post By JessWishes
 
 
Herramientas Desplegado
  #1  
04/04/2019
Predeterminado [Escuela]Base Scripting Essentials - Clase 8

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.

Imagen 01



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.

Imagen 02



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.

Imagen 03



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.

Imagen 04



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.

Imagen 05



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.

Imagen 06



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

Imagen 07



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.

Imagen 08



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.

Imagen 09



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.

Imagen 10



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.

Imagen 11



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.

Imagen 12




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.



Premios


Última edición por JessWishes; 04/04/2019 a las 08:55
 

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 02:01.