Registrarse

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

Estado
Cerrado para nuevas respuestas.

Jessie

What goes around, comes around

Clase 7 : Iteraciones


Objetivo​

El objetivo de esta clase es continuar con la creación de interfaces, para eso veremos la manera de crear y manipular Iteraciones o ciclos de procesos.

Introducción​

En clases anteriores ya hemos visto como usar y manipular gráficos y texto, ahora para facilitar la creación de estos, aprenderemos como usar las iteraciones. Además para crear diferentes efectos o dar movimiento temporal a estos, aprenderemos a usar ciclos y a actualizar la información de los bitmap en la ventana del juego.
Para organizar la clase, he ordenado los temas de mejor manera.

7.1 Iteración por rango​

Primero necesitamos definir que es una iteración. Una Iteración es un proceso que se repite continuamente hasta hallar u obtener un valor o valores determinados. Las iteraciones suelen ser útiles para crear elementos similares sin tener que hacerlo manualmente uno por uno cada elemento. Además las iteraciones pueden ser utilizadas para hallar un valor dentro de un rango definido.

Dentro del RGSS, existen definidos varios comandos que se conocen como Palabras Reservadas, estas se escriben en minúsculas y están relacionadas con funciones predefinidas. En clases anteriores ya hemos visto algunas de estas palabras, como por ejemplo def, end, class, module, return, self, alias entre otras más.
Para poder realizar una iteración por rango necesitamos usar la palabra for, la cual denota que comenzaremos a definir nuestro rango, luego se añade una nueva variable la cual guardará el valor que nuestra iteración tomará del rango dado, seguido usaremos la palabra reservada in, la cual denotará que nuestra iteración tomara un valor de una segunda variable o constante, la cual deberá ser un Array. Por último, se agrega el nombre de la segunda variable, opcionalmente podemos agregar un rango predefinido en lugar de la segunda variable. Una vez que nuestra iteración finalice se utiliza un end para marcar el fin de la iteración.


En el ejemplo anterior, nuestra variable val_1 tomará el valor de cada uno de los elementos en el Array, así que se iniciará un class Sprite por cada elemento y se mostrará en la pantalla el gráfico adecuado según el valor de cada elemento. De esta manera evitamos estar creando uno por uno cada class Sprite.

Adicionalmente se puede definir un rango en lugar de un Array.


El rango a evaluar se define al colocar dos Integers, el primero será el valor inicial y el segundo será el valor final. Y se usa alguno de los operadores siguientes para denotar que es un rango, ..(Dos puntos suspensivos) o ...(Tres puntos suspensivos); la diferencia entre estos dos operadores es el valor final del rango, si se usa ..(Dos puntos suspensivos) el rango tomará en cuenta el valor final, mientras que al usar ...(Tres puntos suspensivos) el rango NO tomará en cuenta el valor final. Tanto el valor inicial como el final deben ser Integers, pero pueden provenir de variables, constantes o el número de elementos en un Array.


7.2 Iteración por Integers​

Al igual que hacer una iteración por rango, es posible realizar una iteración mediante el uso del método times que pertenece al class Integer, este tipo de iteración es útil ya que no es necesario vincular un Array o un rango para que trabaje. Para crear una iteración de este tipo, primero se necesita un Integer, el cual dirá el número de veces que se realizará la iteración, luego usar el método times para ese Integer. Seguido se debe agregar ya sea un bloque con el contenido de la iteración o usando do, la cual es otra palabra reservada que debe ser cerrada con un end.


Usando un bloque, podemos realizar procesos más rápidos y simples, mientras que al usar el do podemos crear iteraciones un poco más complejas, por ejemplo si queremos que un sprite en la ventana del juego se mueva de una posición a otra.


7.3 Ciclos de procesos​

Un ciclo en un proceso, es una especie de iteración, pero en lugar de realizarse cierto número de veces, se realizará de manera continua hasta que se indique lo contrario.

Para realizar un ciclo se pueden usar uno de varios comando y funciones definidos en RGSS. Para iniciar el ciclo se necesita añadir un segundo comando el cual hará que el ciclo comience.

En Rpg Maker XP, los comandos y funciones loop, while y until, tienen el trabajo de generar un ciclo; mientras que break y next son usados para romper y terminar ese ciclo.


En el ejemplo anterior se usó el break para romper el ciclo cuando se cumple cierta condición, igualmente para saltarse uno de los pasos del ciclo se puede usar next.


Otra manera de crear un ciclo es mediante el uso del comando while, este necesita una condición para poder iniciar el ciclo, esta condición es la que dirá bajo que circunstancias el ciclo será terminará.


El comando while, continuará con el ciclo mientras que la condición se cumpla, ya que la condición en el ejemplo anterior le decía que continué mientras que el valor del eje x sea menor a 400 pixeles, el ciclo se romperá una vez que el valor del eje x sea igual o mayor a los 400 pixeles.

Aunque la función pbWait actualiza al module Graphics, no siempre será útil el usar esa función, para lograr actualizar tanto el module Graphics como el module Input, al final del ciclo se debe usar el método update para ambos. Al actualizar ambos module, nos permitirá actualizar la información de los gráficos en pantalla y la información de los controles.



Tarea de la clase 7​

Durante esta clase vimos como crear iteraciones y ciclos, tanto para crear como para modificar elementos de manera más rápida.

Con el propósito de reforzar lo aprendido, se deberá realizar lo siguiente :
  • Mostrar un sprite en la ventana del juego y que se mueva en diferentes direcciones usando ya sea una iteración por rango, una iteración por Integer o un ciclo de proceso.

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. Opcionalmente pueden usar un video o gif para mostrar el efecto del movimiento del Sprite. 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 Jueves 4 de Abril antes de que la siguiente clase sea publicada.

 
Estado
Cerrado para nuevas respuestas.
Arriba