¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

Reputación del mensaje :100% (5 votos)

Faye Valentine

avatar


A petición de: @Tomate

Nivel: Alto





Introducción: ola wapos xd






En este tutorial aprenderéis a, primero, como tomar un valor, cualquier cantidad, y separar cada uno de sus números. Eso quiere decir que si tenéis el valor 5497, será separado en cuatro variables que registrarán la unidad de mil, la centena, la decena y la unidad, es decir, el 5 = unidad de mil, 4 = centena, 9 = decena y 7 = unidad. Este tutorial os enseñará a, además, separar cada número no importa cuántos tenga el valor, el número puede ser 97893242 que igual podréis separar todos los números, esto claro si aplicáis lo que os enseño correctamente. Yo en este tutorial solo abarcaré hasta la unidad de mil.

Esto es útil para muchísimas cosas, un sinfín, pero es especialmente necesario para mostrar valores (digamos, la vida del PJ) mediante imagenes. ¿Cómo le dices al programa que te muestre una imagen por cada número del valor que deseas? Si la vida de tu PJ es de, digamos, 3900, no harás 3900 imágenes para mostrar 3899, 3898, 3897... etcétera. La única forma viable de hacerlo es hacer solo 10 imagenes, del 0 al 9, y que según cada valor individual mostrar su respectiva imagen. Creo que ya me explico lo suficiente. Vayamos a la acción.



Paso 1: Desglose de números



Crearemos cinco variables.

  1. Valor
  2. Unidad
  3. Decena
  4. Centena
  5. Milésima

(< le llamo así porque es más corto que unidad de mil)

Ahora tenemos dos opciones. Haremos cuatro eventos comunes, o cuatro eventos en el mapa. Yo trabajaré con eventos en el mapa por motivos de simpleza. Uno u otro no afectará en nada el resultado, solo que en el evento común tendrás que crear un switch para activarles (puede ser uno solo para los 4).

El primer evento común será la unidad. Por cierto, por -nuevamente- motivos de simpleza, yo utilizaré la vida (actual) del PJ como valor.


Lo siguiente que haremos será hacer otra operación de variables abajo de la que hemos creado, la variable a utilizar será nuevamente Valor. La operación es la siguiente.


Os presento a un amiguito que pocos conocen. Se llama la operación de "Mod." o no sé como se llame en español, pero su función es dividir un valor por un operando y guardar el resto en vez del cociente. Familiarizaros, lo usaremos constantemente.

Finalmente asignaremos a la variable Unidad el valor que variable Valor tenga.


El resultado debería lucir de tal manera:


Terminamos con las unidades. Ahora vamos a la decena, donde se complica un poco. Miento, es bastante fácil =P.

Volvemos a asignar a la variable Valor el HP del PJ. Aplicamos Mod. a Valor esta vez por 100.


Ahora asignamos a la variable Decena el valor de la variable Valor, y ahora, en otra operación de variables, divideremos a Decena, NO a Valor, por 10.


Y así sacamos la decena. Ahora el paso para centena, milésima, diezmilésima o cuantas extensiones queráis, es el mismo que acabáis de ver de decena, simplemente añadiremos cuantos ceros cuan grande sea el número que queremos extraer. Es decir:

Centena: Mod. 1000 | Div. 100
Milésima: Mod. 10000 | Div. 1000
Diezmilésima: Mod. 100000 | Div. 10000
Cienmilésima: Mod. 1000000 | Div. 100000


Recordad que cada evento de extracción será SEPARADO. Si es por eventos, tendrán que ser 3 en caso de centena, 4 en caso de milésima y así sucesivamente, y lo mismo para eventos comunes. Cada uno en su respectivo sitio y no todas las operaciones en un solo evento/evento común porque no funcionará.



Parte 2: Muestra de imagenes



Aquí entra la parte más simple, sin embargo la más engorrosa. Habremos tenido que crear diez imagenes, del cero hasta el nueve. Una vez creadas tendremos que crear diez condiciones y efecto, cada una evaluando si Unidad (en el caso de unidad) es igual a cero, es igual a uno, es igual a dos, etcétera. El proceso es el mismo para decena, para centena y para todas las demás.

Debería lucir así.


Nuevamente, un evento/evento común por cada extensión (uno para unidad, uno para decena... ya sabéis el rollo lol)



Bonus: eliminar ceros a la izquierda



Como extra quería enseñar también como eliminar ceros a la izquierda. Es decir, si tienes 5389 de vida y sufriste daño y ahora estás a 499, mostrar 499 en vez de 0499. De tal forma que se cambie dinámicamente. Aplica también para cuando el PJ suba de vida por nivel, así, si es nivel 1 y tiene 100 de vida, no mostrar 00100 de vida porque cuando sea nivel 50 tendrá 11000, ¿me explico? Crearemos un switch para evaluar cada extensión, excepto la unidad.

La extensión más grande, que en mi caso es la diezmilésima (ya si vuestros personajes o valor puede llegar a cienmil o más colocaréis su debida extensión en vez) será la que esté en el tope. Esta condición y efecto solo evaluará si es cero o no. En caso de ser cero apagará el switch de su extensión (yo le he llamado Act. Diezmilésima) y eliminará el ID de la imagen que utiliza el evento de diezmilésima para mostrarse (en el evento no está el comando de eliminar porque no he utilizado diezmilésima para el sistema).

Las siguientes otras extensiones seguirán un patrón. Será de tal manera:


Si: EXTENSIÓN SUPERIOR es igual a: CERO; evaluar: Si: EXTENSIÓN ACTUAL es igual a: CERO: apagar switch, eliminar picture; Caso contrario: encender switch.


EXTENSIÓN SUPERIOR: la extensión que está después de la cual estamos regulando. Si estamos regulando la milésima, su superior inmediata es la diezmilésima. Si estamos regulando la centena, su superior inmediata es la milésima. Ya me entendeis.
EXTENSION ACTUAL: la extensión a regular. Sea diezmilésima, milésima, centena o decena.

Para que os ilustréis mejor:




El siguiente paso es el más simple. Nos iremos a cada evento de mostrar imagen de cada extensión y les modificaremos:

En el caso de eventos: colocar como condición de inicio que esté el switch de su extensión (si es centena, Act. Centena, por ejemplo) esté encendido.
En el caso de eventos comunes: colocar una condición y efecto que evalúe si el switch de su extensión esté encendido. Colocar todo el contenido dentro.




Créditos: no necesarios

*Este tutorial fue creado en el RPG Maker VX Ace, pero funciona para todas las versiones del RPG Maker.

*¿Desearías tener el proyecto para mirar las cosas desde dentro? Házmelo saber y con gusto lo subiré.



Última edición por Faye Valentine el Miér Oct 26, 2016 5:34 pm, editado 3 veces

Natalie

avatar
@Faye Valentine magnifico tutorial, muy muy bien explicado! Ópalo Reputación   Me ha costado más entender la parte del cero a la izquierda, pero voy a probar a hacerlo en el maker por si me surge dudas! Ópalo Contento

Ledai

avatar
Fíjate si estará bien explicado que hasta me he enterado yo... más o menos. XDD
En serio,  Ópalo Reputación por el trabajo,  Ópalo Reputación y por la presentación.




Entérate de todas las novedades

Tomate

avatar
¡Qué velocidad! ¡Ya lo tienes listo! ¡Muchísimas gracias! Ópalo Contento

No sé por qué, pero me resulta más fácil programar con códigos en Game Maker en lugar de eventos del RPG Maker. Pero tu tutorial lo entendí muy bien, ahora me resta llevarlo a la práctica y aplicarlo para nuevos usos.

La verdad es que me ha encantado lo bien explicado e ilustrado que está el tema, es un tutorial perfecto Y si consigo llevarlo a la práctica, podré ejecutar mis ideas. Por supuesto que serás mencionado por ello Ópalo Contento

Con respecto a lo de pasar el archivo del juego para mirar por dentro, ya queda en cada uno, pero creo que no es necesario. Mejor ir aprendiendo sobre la marcha y haciendo uno mismo las cosas, paso a pasito. Ópalo Contento

¡Mis más grandes felicitaciones! Ópalo Reputación Ópalo Aplaudiendo Ópalo Party

Vala

avatar
¡Qué genial!
Siempre se aprecia alguien que comparta sus conocimientos y, encima, con buena onda y claridad como lo hacés vos.
Muchas gracias, de verdad. Ópalo Reputación

Saludos,
Vala.

Faye Valentine

avatar
Muchas gracias a todos, me gusta que os guste =)

Por lo demás si a alguien lo quedó claro del todo alguna parte del tutorial que me haga saber y se la puedo explicar de otra manera, o aclarar dudas en caso de tenerlas. Aquí el punto es que todos entiendan =)

Saludos a todos.

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.