Mostrando entradas con la etiqueta rpg maker 2003 tutorial. Mostrar todas las entradas
Mostrando entradas con la etiqueta rpg maker 2003 tutorial. Mostrar todas las entradas

miércoles, 21 de julio de 2021

Tutorial - Funcionamiento de los autotiles básicos (Rpg maker 2003)

Me habían pedido que explicara en un tutorial como va un poco esto de los autotiles en RPG Maker 2003, aunque de usar algún otro programa externo como TILED ya no sé, así que solo
pondré cosas que conozco de siempre que no son muy complejas si cualquiera lo ha usado un tiempo.

 

El primer autotile verde no sirve de nada,
se repite
Si un tile es solo un cuadro de un tamaño con un gráfico, un autotile es una versión personalizada del mismo para que puedas dibujar un terreno por ejemplo sin ir buscando parte por parte en caso de que haya cosas como bordes.

La estructura de estos de al lado es la siguiente,
debajo los detallo:

 A B C
 1  2  3
 4  5  6
 7  8  9

Los llamo así para separar lo que son los 3 de arriba en horizontal, que son algo diferentes.


 5 Es el terreno "normal", el tile completo
los que lo rodean son los bordes que se
ponen automáticamente.

 

 

El del lado izquierdo es el que
vemos en el editor
Al poner una rejilla de 8x8px se entiende mejor lo
que son los tiles A y C
El editor de mapas automáticamente cogerá
esquinas interiores de A (solo 8x8px)
y las exteriores de C, también solo 8x8px en cada caso.

Se puede dar el caso de que haya dos autotiles a la vez y se usen dos partes de 8x8, como puede ser dos esquinas de C.

Curiosidades, consejos, etc.

- Se puede usar un autotile como tiles, en parte, desde el propio editor,
solo hay que dibujar todo, y manteniendo la tecla shift copiar y pegar la parte que queramos.

- Aprovechando que usando Shift podemos usarlos como tiles, de tener
necesidad de espacio en el gráfico de chipsets. (Ya no hay tantas limitaciones al mapear, pero bueno)
Se pueden poner cosas de la capa 1 ahí como, cosas que no lleven transparencia.

- Normalmente es una parte poco aprovechada, con bastantes grupos de tiles que
no usemos podemos poner los mismos con algo de sombras, y aprovechar lo del shift.


 

 

 

 

 

jueves, 4 de marzo de 2021

Tutorial - Sistema de lanzar flechas/proyectiles y colisiones (Rpg maker 2003 - Otros)

 Desde que hice la parte de habilidades del Lufia de rpg maker no he contado cómo funciona internamente cada cosa, más de uno me ha preguntado como se hace, puede ser un poco lioso, pero con la teoría/lógica se aprende.
En mi caso me puse a hacer pruebas y a ver como lograba hacerlo, no es que leyera tutoriales.

 En el título he puesto lo de otros porque puede valer para más cosas que no sean Rpg Maker, es lógica del funcionamiento de un videojuego.


Veamos.

Tal como funciona Rpg maker 2003 hay que tener eventos, que son los cuadrados que se ven,
pero las acciones dentro del mismo también se les llama eventos. al final hay que verlo como un contenedor.

Como yo hice el sistema, para tener flechas y poder usar toda las propiedades, la flecha con su gráfico es como un evento de esos cuadrado.

Rpg maker ya tiene un sistema para poner en un proceso que está todo el rato funcionando (proceso paralelo) que al pulsar un botón pase x cosa, en este caso al pulsar el botón lanza la flecha.

Como Rpg maker tiene una sección llamada Eventos comunes donde puedes llamar a una serie de procesos sin copiar y pegar en cada mapa, solo está una vez.

-Detalles generales- 

Como se ve en la imagen de la derecha hay recuadros que representan coordenadas del mapa.
Rpg maker tiene 2 formas de usarlas,
Coordenadas X e Y, (el cuadro entero, lo que pasa desde que el primer píxel llega hasta él, se manejan sumando y restando 1 para pasasr de recuadro)
Posición X e Y (píxel a píxel, de un cuadro a otro hay una distancia de 16 píxeles)

Usando rangos de posición X y otros rangos de Y desde una posición a otra se puede hacer una caja de colisión, algo habitual en los juegos. Aunque Rpg maker ya integra formas propias sin llegar a decir la terminología tal como se conoce.

Uso de Variables, hay que saber que se pueden guardar valores y usando la función
de condiciones y efectos (Conditional branch) se pueden comprobar si
unas variables tienen el mismo valor, mayor, menor, etc

Como decía arriba usé una flecha que está como evento en el mapa, que es la que manejo.

-Cosas a definir-

En Variables
Coordenada del personaje X
Coordenada del personaje X+1 (Tomar valor de X y sumar 1)
Coordenada del personaje X-1 (Tomar valor de X y restar 1)


Coordenada del personaje Y
Coordenada del personaje Y+1 (Tomar valor de Yy sumar 1)
Coordenada del personaje Y-1 (Tomar valor de Yy restar 1)

A más variables guardemos de lo que rodea al personaje, luego podremos hacer más cosas.

Valor de Terreno, según el cuadro. (Terreno es algo de Rpg maker que se puede usar para colisiones)
Digamos que el valor 0 es no pasable y 1 pasable

Coordenada del X de Flecha
Coordenada del Y de Flecha

 
Coordenada del interruptor X
Coordenada del interruptor Y


(Esto último se puede ahorrar poniendo un proceso paralelo que guarde esa posición)

 -Acciones-

 Esta es la parte que hay que estrujarse un poco los sesos.
Al menos en Rpg maker 2003 todo se procesa a una velocidad rapidísima, así que hay que usar esperas continuas.

Si nuestro personaje está mirando a la izquierda,
Cambiar ubicación de Evento "Flecha"
Debe irse a la posición ID X-1

Algo así:
Condiciones y efectos: Dirección de Héroe "Izquierda"
-(Cambiar gráfico de personaje (haciendo gesto de lanzar si queremos)
--Movimiento de personaje: Flecha "Mirar a izquierda"
---Cambiar Posición de "Flecha" a Coordenada del personaje X-1 e Y (sin cambiar)
----Esperar 0.0s (las esperas así permiten que se procesen las cosas sin interrupciones)

Hasta ahora ya hemos conseguido que la flecha se mueva, pero solo si miramos a izquierda, ojo.
El movimiento, tal como se llaman las acciones en rpg maker: 

Condiciones y efectos: Coordenada del evento flecha X / flecha Y
-Adquirir ID de terreno de "Flecha" (en realidad debe ser de X-1 para saber si pasa)
--Condiciones y efectos: Variable Valor = 0 (No se cumple)
---Ir a etiqueta 1

--Condiciones y efectos: Variable Valor = 1 (Si se cumple)
---Movimiento de personaje: Flecha / "Comenzar Ruta" (Así tradujeron la acción de atravesar todo) "Avanzar" (Avanza un cuadrado)
----Esperar 0.2s (generalmente el tiempo de espera de un movimiento de tile, según la velocidad)
(En este punto se repite la acción, si no hay nada contra lo que chocar la flecha seguirá avanzando)
-Etiqueta 1
-- (Animación de chocar, o de momento ponemos que desaparezca la flecha)


Ahora viene lo que afecta al interruptor que pulsamos:
Rpg maker 2003 puede tener eventos haciendo procesos en paralelo comprobando cosas sin apenas afectar al rendimiento, y es lo que se suele hacer.

En el interruptor ponemos un evento

Ya tenemos de antes guardadas,
Coordenada del interruptor X
Coordenada del interruptor Y

Pues:

-Condiciones y efectos:
--Coordenada del interruptor X = Coordenada de Flecha X?
---Coordenada del interruptor Y = Coordenada de Flecha Y? (Si ambas se cumplen)
----Efecto de sonido (el que queramos)
----Activar interruptor: Palanca pulsada (El que queramos)
----Esperar 0.2s

-Esperar 0.0s (para evitar posible lag al estar todo el rato comprobando las coordenadas)

En mi ejemplo el interruptor tiene otro nombre, la palanca está mirando a otro lado
 (Como ya sabéis si habéis llegado aquí es solo un cambio de página, en la 2 no hay nada)


 En el proyecto había algo más aparte el terreno, el ID de lo que hay en un recuadro,
así no podía atravesar ciertas cosas como pilares, cierto rango lo dejaba para colisiones.

 Puede ser bastante lioso, voy a poner todo el evento común del Lufia aquí (es muy caótico por los pequeños ajustes que hacía sobre la marcha  😅),
igualmente está el juego en la seccion descargas,esto está en Evento común 0071-Flecha:
13 es el terreno de pared


-Evento original-

jueves, 27 de diciembre de 2018

Tutorial - Interruptores en RPG Maker 2003

Si algo es de necesidad total en RPG Maker al igual que en cualquier videojuego son los interruptores, switches.

En este tutorial voy a contar el uso de interruptores dentro de un evento, en internet hay montones de tutoriales más pero bueno.

Desde Control Switches
podemos de un listado que se puede cambiar en
tamaño, tener interruptores para diferentes
cosas del juego.

Como se ve en la imagen de arriba a la derecha,
no tiene mucho que contar, un interruptor
a elegir en la parte de arriba y
estado ON y OFF, además de Toogle on/off
que la versión en español la he visto como "mecanismo"
que lo que hace es si esta en OFF se pone en ON
 y viceversa.


Los interruptores para ser útiles requieren
que estén bajo una condición, claro.
Y en RPG Maker 2003 hay varias partes donde están.
Que es el "Conditional Branch".
Está para usarlo dentro del mismo evento entre cosas que pongamos, o en páginas, para que algo se inicie si está activado el evento que queramos.

Un ejemplo de usar interruptores simple sería el de los cofres: (imágenes abajo también)

Pones un cofre, que en la casilla trigger esté como Action button (Para que se active al pulsar el botón)
En Priority: Same as characters (Para que choques con él, no está ni por debajo ni sobre el héroe).

Pues sería:
 Show Text: ¡Has encontrado una Poción!
 Change Item: Poción Increase 1
 Control Switches: [0001]Cofre lo activamos

Arriba en la ventana le damos a New Page.

En la segunda pagina ponemos a la izquierda, que hay casillas, le damos
a la primera y que esté Switch 0001 cofre is ON
Podemos poner otro gráfico con el cofre abierto y ya está.


Unas imágenes y ahora explico:

Página 1


 Página 2


En un evento general, siempre se procesará la pagina con mayor número.
En este caso, la página 2 requiere que esté el interruptor 0001 cofre activado,
así que veremos en el juego el evento con la página 1 primero.
Al abrir el cofre se mostrará el mensaje, se añadirá la Poción y al activarse el interruptor,
cambiará a la pagina 2 que tiene más prioridad y tiene marcado que aparezca con la condición
del switch 0001: Cofre. 

Dentro del juego podemos pulsar F8 y cambiarlo para hacer pruebas.

Si notáis, tambien he cambiado la animación por Fixed Graphic. Os lo recomiendo para cofres
en general en todas las páginas. Evita que al abrir el cofre desde diferentes lados puedan verse otros gráficos (según como esté el gráfico del cofre en la carpeta charset).

Este es un ejemplo con páginas, pero se pueden usar condiciones
dentro de la misma página para muchas cosas, cualquier cosa que queremos que no
vuelva a pasar.

-------------------------------

Desde lo más simple a cosas más elaboradas, podemos hacer una intro y activar un interruptor para que no se repita. Personajes que hablan algo o se mueven y no queremos que sigan haciéndolo.
Que no se pueda volver a un sitio.
Podemos poner una roca que al empujarla si esta en una posición X-Y (Mirar el tutorial de variables)
active un interruptor y se abra una puerta.
En general es prácticamente de las cosas más necesarias para hacer un juego.

En Rpg Makers más modernos existen los Interruptores locales,
que son interruptores del propio evento únicos, y se pueden usar para evitar tener
que estar usando la lista larga de interruptores, útil para ahorrar tiempo en cosas como cofres.




Tutorial: Variables en RPG Maker 2003

Siguiendo con los tutoriales, que quedarán en orden en el blog, lo siguiente
"que son las variables".

En RPG Maker 2003 además de los imprescindibles interruptores están las variables.

La forma más sencilla de entender esto creo que es (como me dijeron a mí en su día)
si un interruptor tiene dos posiciones, OFF-ON, sería como 0 y 1.
Pues con las variables tienes diferentes valores.
Según versión del programa
desde -999999999 a +1000000000,
en todo caso no creo que necesitemos cantidades tan grandes.

En la imagen de al lado se ve como se manejan las variables.  
Control Variables

Arriba está para poner la variable con la que vamos a hacer "el proceso".

En Operation está el cálculo, como fijar, sumar, restar, multiplicar y dividir es lo que más usaréis.

En Operand está lo que vamos a guardar en la variable, puede ser un valor que queramos,
podemos tomar el valor de otra variable o hacer cálculos con ella.
Guardar un valor al azar entre un rango, cantidad de objetos, dinero, muchas cosas.

Al igual que los interruptores requiere que luego usemos "Condiciones y efectos" o "Conditional Branch" que será con lo que procesemos
qué queremos que pase al estar el valor que queremos.

Por ejemplo, supongamos que en un juego ponemos 5 llaves, al coger cada llave
ponemos una variable que sume 1 a "Variable 0001: llaves" (o como quieras)
y luego en una puerta poner una condicion que sea:

Condición
   Si el valor es 5
       (Abres la puerta usando las llaves)
   Excepción 
       Mensaje: Aún me quedan llaves por encontrar.

A raíz de esto último, se pueden poner cantidades de variables en los mensajes y otras cosas.
Si ponemos

    Tengo \v[0001] llaves.

Así mostrará la cantidad de llaves que tenemos.

-----------------------------------

Con más código podemos dejarlo más detallado.
Así podríamos poner los textos de este modo.


- Guardas en Variable 0001 las llaves
- Guardas en Variable 0002 la cantidad 5
- En la Variable 0002 restas el contenido de Variable 0001

(Para calcular el resto.
5 menos 1 llave = 4
5 menos 2 llaves = 3
5 menos 3 llaves = 2
5 menos 4 llaves = 1
5 menos 5 llaves = 0)

Así podemos poner diferentes mensajes sobre las que faltan.

-------------------
Las variables tienen mucho potencial, usando asignar teclas guardas valores
y según el valor puedes hacer menús o indicadores, se pueden usar en una infinidad
de cosas y es cosa de probar y trastear.

Dentro del juego con F8 puedes ver los valores de las variables, cambiarlas, etc.



miércoles, 26 de diciembre de 2018

Tutorial: Punteros en Rpg maker 2003

¿Os han traído regalos esta navidad? Aquí solo os traigo un infierno de punteros de RPG Maker 2003 en un tutorial que seguramente os deje con un lío encima
si no sois programadores al igual que yo.
Que esto solo lo he tocado por encima a la inversa y sin llegar a la raíz del tema.

En primer lugar tomo los ejemplos de Kazesui, que es un grande de esto de Rpgmaker.net
pero yo no voy a poner un ejemplo jugable como él porque lo que hace es un puzle que se puede
hacer de forma normal con interruptores y variables de toda la vida en un ratillo, no así en días.

Si algo está mal lo comentáis, solo intento entender y poner esto en cristiano porque
solo lo he visto explicado en inglés. Creo que ni en las instrucciones del programa viene.

Como sabéis el objetivo de RPG Maker desde siempre ha sido como dicen en inglés es hacer un editor "user-friendly" fácil de usar y a la vista todo sin complicarse mucho, pero cada uno guarda parte de potencial para llevarlo al límite, el 2003 fue el último que se hizo sin tener un sistema aparte para programar con código, ya fue el Rpg maker XP con RGSS que es un Ruby adaptado.

Las diferencias entre ambos son muchas y cada uno prefiere las suyas, ambos se han ido mejorando
con el tiempo. Pero voy a ir al grano para comentar esto de los punteros, qué hace y
por qué es la función menos usada del programa y lo mal implementada que está (a mi juicio).


Si ponemos lo siguiente:


Las cosas quedarán de esta forma:


Este apartado se organiza así:
 A:
"Variable Reference 0002" con valor 4 no se le trata de valor, sino de puntero, así que
mira lo que hay en ID 0004 que es cantidad 1.

 Cálculo:
Add (sumar)

Operand: 
"Value Stored in Index 0001" que es cantidad 2 se le suma 1,

Así que el total en ID 0004 es 3 (Resultado de sumar lo que hay en ID 0001 e ID 0004)

Como véis esto está fatal implementado y es un lío.
En rpg maker las variables se entienden como ID XXXX con un valor,
pero aquí la función de puntero está metida en el mismo saco, con nombres
como Variable Reference, Variable index y según el Rpg Maker que tengas
en cada idioma tendrá un nombre. Tendría que estar separado lo que son punteros y
que mostrase a que está enlazado.

Esto de aquí ya se puede hacer con variables, que es "A variable X le añades lo de Variable Y"
que en parte es una de las funciones clave con la que siempre he hecho cosas como menús y tal
en los proyectos.

Pero bueno esta es la parte fácil de usar, la parte mas compleja es la siguiente, que
me ha estado rayando un rato.



 A:
"Single Variable ID 0002 con cantidad 4"

 Cálculo:
Add (sumar)

Operand: 
"Value Stored in Index ID 0001" que es cantidad 2,

Esto parece un acertijo, y es que como se le llama igual a variable y puntero pues lo es.
A la variable ID 0002 que tiene cantidad 4, se le "intenta" sumar lo que hay en el puntero ID 0001, que como su valor es 2 que actúa de puntero, apunta a ID 0002 que tiene el valor 4, pues se suman 4+4 y dan 8.
Os dejo un rato que penséis si eso.

Como véis si ya lo entendéis, aquí mezclaron todo, tratando Variables y punteros de la misma forma,
sin avisar si alguna ID hace de puntero o es un valor de variable común, pero sí que separaron los Interruptores en otro apartado, claro que sí.

Si sois programadores quizás lo veis normal pero en este editor las cosas están separadas
y organizadas, de ahí que me choque tanto.

¿Qué uso tiene esto en el RPG Maker 2003?
Pues lo usan los que más saben del programa y hacen menús personalizados currados,
como el del proyecto Aedemphia que lleva no sé si 15 años, o el programador del Demake del FF7
que tras hacer parte del menú y crear hype lo abandonó, es la función mas avanzada y menos usada del programa y se usa en menús personalizados.

Aunque no sea obligatorio dicen que puede ahorrar tiempo, aunque por mi parte solo con ver que luego algo no funcione, me mataría buscando donde está el error por como está organizado.

Como todos los menús y cosas avanzadas que se intentan hacer hay que tener al lado
una hoja de cálculo e ir anotando todo. Por lo menos yo lo hago con cada proyecto.



lunes, 12 de noviembre de 2018

Tutorial grafísmo - Mapeo, barandillas en RPGs, y su uso correcto

Es un tema que me saca de quicio a la hora de mapear, ya sea en rpg maker o en cualquier
otro motor, o plataforma, normalmente lo que voy a comentar está relacionado
con su uso dentro de trabajar con tiles, y que el personaje se mueva en cuadros de 16px o múltiplos,
aunque cambiarían las cantidades de px. Es más bien tema de estética.

Lo primero, si en vuestro juego tenéis movimiento por pixeles, y el personaje no se mueve por cuadros, esto casi que podéis dejar de seguir leyendo, porque lo movéis a donde os guste XD

Cuando hacemos un tile de una barandilla, según la encuadramos,
podemos dejar un espacio que es transparente, y si es impasable
hasta aquí llega el personaje, puesto que el personaje se mueve
a cuadros enteros, no puede acercarse más.
Queda feo y más cuando otras partes no tienen estos espacios.





Cuando permitimos que se pueda pasar, el personaje ocupará
el tile con la dichosa barandilla, que se solapará, estándo mal








Esta es una forma correcta, "la trampa" está
en que la barandilla está fuera de lo que es el
tile de suelo en sí, por lo que ni deja distancia,
ni se puede solapar. Hay que adaptarla a los gráficos que
usemos pero barandillas por fuera, mucho mejor
en juegos que van con movimiento por pasos.







Ya como anécdota os diré que el Final Fantasy 5 que seguro que lo habéis jugado,
tiene roto un tema de estos en los pueblos, pero por otra cosa relacionado con prioridades XD
Si subís y bajáis escaleras, veréis como los bordillos de las barandillas cortan al personaje
según se mueve en vertical.




viernes, 16 de junio de 2017

[Tutorial] Pictures animados fijos en mapas con scroll (Rpg Maker 2003)

Primero de todo agradecer a soeufans que fue el que me contó como hacer esto,
porque es un fallo del rpg maker que no se puedan fijar pictures para hacer animaciones si hay movimiento en la pantalla. La casilla de fijar scroll, si hay animación en el picture por mostrarlo
una y otra vez con diferentes graficos no funciona normalmente bien, y sigue al personaje.

Lo primero que necesitamos es tener un mapa grande, de mas de 20x15

1º evento, proceso paralelo:
Operacion con variables, guardamos coordenadas
en   Variable X y Variable Y  Eliminar evento



2º evento, en proceso paralelo:
  1. Esperar 05 segundos, o cualquier tiempo
     Mostrar Imagen 1 - Grafico 1
      Variable X
      Variable Y

       Fijar scroll de mapa puesto
  2.  Esperar 05 segundos, o cualquier tiempo
     Mostrar Imagen 1 - Grafico 2
      Variable X
      Variable Y

       Fijar scroll de mapa puesto
3º evento: (aquí el truco) en proceso paralelo

  1. Operacion con variables
     Fijar Variable X
      Sust
        Sprite - Esta acción - Pantalla X

  2. Operacion con variables
     Fijar Variable Y
      Sust
        Sprite - Esta acción - Pantalla Y
  3. Mover Imagen 1
     Variable X
     Variable Y
    Esperar 0
    Esperar finalizar animacion NO

El rpg maker por un bug, cada vez que usa Mostrar imagen, toma
como referencia primeramente las coordenadas del personaje (PosX-Y)
Al guardar posiciones relativas a un evento fijo, y luego usar mover evento, no
dan tiempo a procesarse lo relativo al héroe y el mostrar imagen no va directo a mostrarse en coordenadas relacionadas con el mismo.


Ejemplo:
https://www.mediafire.com/?1vkh4hu886bcu0v






miércoles, 24 de agosto de 2016

Tutorial Rpg maker 2003 - Eventos, colisiones y sistemas

Ésto que suena a asignatura, son algunas de las cosas como trabaja el Rpg Maker con
los eventos, y como siempre digo, parte de estas cosas pueden valer para cosas generales en desarrollo de juegos.

Lo que voy a explicar es cómo guardar en variables las coordenadas
del personaje, (entorno), y sus posibles usos.



En el apartado de variables,
en Event, Player.

Hay varias cosas que se pueden
guardar en una variable, en este caso, como está marcado el personaje:

  • Map ID como el nombre dice, guarda al número del mapa, Map0001 por ejemplo, guardaría 1.
  • X Coordinate guarda la posición el bloque X en el que estás.
    Es decir, el maker cuenta desde el bloque X0 en horizontal, y cada cuadro es un número.
  • Y Coordinate es lo mismo pero en vertical, guarda el número de cuadro del personaje en la variable (arriba del todo=0 mas abajo +1 por cuadro).
  • Direction. La posición a donde mira el personaje, os ahorro tener que mirarlo.
    2 - abajo, 8 - arriba, 6 - derecha, 4 izquierda.
  •  Screen X, ésto es diferente de lo de arriba, no guarda el "cuadro" de 1 en 1 sino que
    va por píxeles, es decir, si te mueves un cuadro a la derecha, la variable será +16px que
    es el tamaño de cada cuadro/tile.
  •  Screen Y, lo mismo para la altura, siguiendo el patron de Y coordinate, aqui cada cuadro más abajo es +16
Ahora sabiendo ésto, puedo guardar las coordenadas del personaje y lo que hay a su alrededor,
para por ejemplo hacer un sistema de batalla de disparos, o lanzar flechas que detecten paredes.
Pues sí, además tambien hay para guardar ID' de evento, y ID's de terreno.

Ahora voy al meollo con este gráfico




Este "tochaco" que lo he copiado del Lufia porque paso de volver a escribirlo,
guarda en 28 variables lo que hay alrededor del personaje, no guarda las esquinas porque no me hace falta.

Además de esto también en base a esas posiciones, otras 28 variables que leen el terreno de esos tiles.

Si en un cuadro no hay evento la variable dará valor 0

Si el terreno no está definido dará 1 que es el terreno por defecto de todos los tiles.


Pondré algunos ejemplos que pueden valer con esto teniendolo en eventos comunes guardando todas las posiciones cercanas + las cosas más basicas que comenté arriba.

Ejemplo 1: Supongamos que
lanzamos una flecha a donde hay un interruptor, podemos poner un proceso que
compruebe si sobre el interruptor en base a su ID o posición o junto al interruptor
choca la flecha que es otro evento con otra ID.

Ejemplo 2: Creo que ya comenté antes esto con lo de hacer el puente que tenia animación según andabas.
pues se puede hacer que
los tiles que forman el puente cambien según la distancia del héroe que está en variables.

Ejemplo 3: Teniendo guardadas suficiente distancia, podemos hacer que haya enemigos que nos detecten si estamos cerca.
Cosa que tambien se puede de otra forma dinámica, sumando X-Y del heroe, X-Y del enemigo,
restandolos, si el valor es bajo es porque está cerca de nosotros!

viernes, 12 de septiembre de 2014

Tutorial - Arreglar fuentes borrosas en RPG Maker 2003

Bueno este es un tutorial para arreglar las fuentes borrosas que se ven
en los juegos hechos con RPG Maker 2000 y 2003 al jugarlos en Windows 7, Vista, 8, etc
que llevan cleartype.

Si es vuestro juego y no tenéis ningún parche ni nada, tan solo sustituid
el RPG_RT.exe del juego con el de aquí:
enlace

Si por el contrario lo que necesitas es modificar tu juego que tiene cambios en
el ejecutable y no lo quieres perder / o el juego no es tuyo tienes que:
1. Abrir el RPG_RT.exe con Windhex u otro editor hexadecimal.
2. Buscas "Lucida" o "RM2000" y verás un texto con el nombre
de las fuentes. Bien pues aquí el tema es coger y cambiarlas por
MS Gothic y MS Mincho y los espacios que hay después de la
fuente (tienen el valor 20) hay que ponerlos como 00.
Tambien puedes probar dejar la fuente que estaba y después cambiar los espacios
que son el valor 20 por 00.




jueves, 29 de mayo de 2014

Rpg Maker 2003 - Tutorial de puente animado

Hola gente, ayer hice este pequeño sistema para animar
los puentes cuando pasa el personaje.
Y voy a hacer un tutorial de como se hace. ¡Es avanzado, aviso!


Los tiles del puente tienen que ir como evento y bajo el personaje.
Cada tile tiene que estar dividido a tu gusto,
y cuando "mire" en una dirección tiene que cambiarse
por el 1-2-3 según donde esté el personaje para que baje y suba.













Ahora comento el sistema que he usado para que baje.

Básicamente es como se ve en esta imagen, en el cuadro donde está el personaje
el puente baja dos alturas, y a los lados a 1 altura, así se hace de forma más fluida
que solo bajando 1 altura.

Después de la teoría, ¡el código!
Al principio pensé en hacerlo con interruptores o en variables poniendo cada posición,
pero encontré una forma de hacerlo sin tener que cambiar código en cada evento.

Hay que hacer:

  • - Un evento en proceso paralelo que guarde las posiciones X - Y del personaje que llamaremos "Heroe X" y "Heroe Y".
  • - En los eventos que tiene los gráficos del puente (en proceso paralelo todos) ponemos:
    1. Operación de variable "Heroe X calculo" con Fijar-sustitución - Sprite Héroe Coordenada X
    2. Operación de variable "Heroe X calculo" con restar - Sprite Esta acción Coordenada X

      Con esto hacemos que se calcule la diferencia de posición entre el personaje y el sitio que estamos pisando, si estamos encima de dicho tile el valor será 0, si estamos a un cuadro de distancia será +1 o -1, y más pues -2 o +2.
      NOTA: Si vais a poner más de un puente o que puedas pasar por debajo lo suyo sería que usaseis también coordenadas Y para que al andar por otra parte no se pise el puente sin haber nadie XD
    3. Condición: "Heroe X calculo" es 0
        Este evento: Mirar la posición donde está bajado del todo (-2 en el dibujo)
      Condición: "Heroe X calculo" es 1
        Este evento: Mirar la posición donde está medio bajado (-1 en el dibujo)
      Condición: "Heroe X calculo" es -1
        Este evento: Mirar la posición donde está medio bajado (-1 en el dibujo)
      Condición: "Heroe X calculo" es mayor o igual a 2
        Este evento: Mirar la posición donde está subido (0 en el dibujo)
      Condición: "Heroe X calculo" es menor o igual a 2
        Este evento: Mirar la posición donde está subido (0 en el dibujo)
Y si os quedáis con ganas también podéis hacer copias de los tiles del puente pero en negro
para usar como sombras, las ponéis más abajo y ya el código hará el resto sin tener
que tocar más.

lunes, 10 de febrero de 2014

Tutorial - RpgMaker2003 - Empujar bloques para puzzles

Hola gente, aprovechando que estaba de pruebas he hecho este proyecto
de prueba con algunas cosas básicas y otras no tanto para el que
quiera empezar a hacer puzzles usando Rpg maker 2003.

Algunas de estas cosas están comentadas en muchos tutoriales por internet,
pero aquí hay cosas no tan comentadas de mi cosecha propia.



¿Qué aprenderé con esto?

Primero de todo a mover bloques debidamente, funcionando mejor que la mayoría de tutoriales
que veréis.
La forma normal de mover un evento es usando el comando mover evento y listo,
el problema de usar solo eso es que mueves el evento, sí, pero tu personaje se queda parado
mientras, como si el bloque estuviese sobre hielo.
La solución que encontré a eso es poner que el personaje se mueva en la misma dirección que
lo que empujas, y como normalmente no se moverá el personaje hasta que termine el movimiento
del bloque hay que usar el comando "Ejecuta movimiento", así fuerzas a que el personaje
siga al objeto que mueve.

También en el proyecto está puesto de forma simple como colocar interruptores en el suelo
que se activen al poner un objeto encima, para abrir puertas o lo que sea.

Descarga:
Engine empujar y switches.rar

domingo, 6 de octubre de 2013

Fixed direction system RPGMAKER 2003

Esta es una de las cosas que me ha traído más de un dolor de cabeza en el RPG Maker 2003,
y es una de las cosas más difíciles que he hecho, (aunque no lo parezca)

Explico de qué trata (poca gente lo entenderá xd).

Esto es un sistema para girar el personaje en cualquier dirección sin que ande
que se usa en juegos como Lufia 2-4, (pokemon usa algo parecido, pero si le das un toque a la dirección mira a esa dirección y no anda)

Para hacerlo hay que usar varias líneas de proceso a la vez y jugar con los timings. ¡Es un follón! XD

La función de Asignar teclas, que es para que cuando pulses una tecla se guarde un valor,
y según ese valor ocurra algo es un poco extraña.

Primero porque si tienes por ejemplo pulsada la tecla Enter, cuando llegue a un Asignar teclas,
(aunque sea que esperas otra tecla y no Enter) el Asignar Teclas pondrá el valor a 0.
Así que no permite hacer cosas como mantén x botón para que pase algo.

Segundo motivo que no permite en el maker hacer lo de mantener teclas,
en Input keys hay una opción que pone "guardar valor mientras se pulsa", pues
esto que parecería ser la solución a todo esto no sirve, porque
ahí se guarda el valor de la tecla que pulsemos, pero si no pulsamos ninguna no se resetea a 0!!!
Así que es completamente inútil.

Lo comenté en Rpgmaker.net y kazesui me dijo más o menos como se podía hacer, y la
idea era usar varios asignar teclas

Un asignar teclas se usa para detener al personaje y entrar en modo que gire.
Otro asignar teclas está en automático (para que no se mueva el personaje) y le hace esperar,
y va llamando a otro evento común llamado soltar tecla

En el soltar tecla hay asignar teclas que si tiene el valor 0 (de la tecla que manteníamos,)
para todo el proceso.

Y ahora la parte que me daba más quebradero de cabeza, hacer las direcciones,
ayer estuve hasta las 3 de la mañana intentando hacer que quedara bien metiendo
lo de las direcciones en el evento automático y funcionar funcionaba, pero no
respondía de forma precisa, tardaba un poco en cambiar de dirección porque
el Input key era sin esperar tecla.

Y es que los Input key sin espera, producen más lag que los que tienen espera.

Tras muchos rollos hice otro evento común, y metí en un proceso paralelo
un input key con espera, y ya sí, funciona sin lag.

He subido un proyecto de demo con todo para el que lo quiera probar, usar o lo que sea,
porque no soy de esos mierdas que hacen muchas cosas pero no comparten nada.

Enlace: http://www.mediafire.com/?jocj2rl4e97n1bb

Decir que en el Lufia esto varía un poco y añade algunas cosas más, algunos tiempos
de espera para que se terminen mientras las animaciones de cortar con la espada por ejemplo,
y el permitir/no permitir técnicas cuando coges un jarrón y giras.

Y como es la demo:



domingo, 7 de abril de 2013

Tutorial - Sistema de correr pulsando un botón (usando el pathfinder)

Hola peña, quería hablar de otro metodo que me he ingeniado para hacer un sistema de correr
para el Resident Evil Demake, se me ocurrió tras ver que se podía hacer usando el
plugin pathfinder de dynrpg.
Como todo sistema tiene sus ventajas y sus inconvenientes, que iré comentando.

Requisitos:

Rpg maker 2003 (obvio)
dynrpg
pathfinder plugin


Pasos:

Hay que poner las cosas como aparecen aquí,
un evento común con lo siguiente, el asignar teclas sin esperar, yo usé la tecla 7 que es el shift


Tambien ponemos los siguientes eventos comunes que son los que llamaremos al andar y al correr



Bueno si ya lo habeis puesto podeis probarlo a ver que tal,
lo que quería comentar era lo del interruptor que hay de iniciado juego corre, el para qué sirve
es para solucionar un problema que tiene esto que al iniciar el juego no hay ninguna tecla pulsada
por lo que el valor es 0 el de la variable 142: tecla pulsada, por lo que hace la acción de moverse,
así debería ir bien aunque aun me queda probarlo más.

Una cosa negativa de esto es que parece que al estar eso ahí otros eventos no se llevan muy bien, y puede que si vayas a hacer una secuencia donde muevas personajes, debas de desactivarlo esto usando un interruptor.