Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Solicitud sistema de empujar, jalar objetos

Ver el tema anterior Ver el tema siguiente Ir abajo

Solicitud sistema de empujar, jalar objetos

Mensaje por Broly312 el 2018-08-11, 03:15

Saludos, aqui nuevamente con una solicitud espero puedan responder.
Quiero hacer que el personaje, sostenga ¨Piedras grandes¨ las empuje, o las jale dependiendo de lo que necesite en el momento, y tambien si es posible hacer que ¨Piedras muy grandes¨ no las pueda mover y salga disparado.

Algo asi como en the legend of zelda a link to the past
avatar
Broly312
Iniciado
Iniciado

0/3

Créditos 16

Gracias : 2

Volver arriba Ir abajo

Re: Solicitud sistema de empujar, jalar objetos

Mensaje por orochii el 2018-08-11, 05:50

Lo de halar y empujar es fácil, es un engine muy sencillo. El asunto se complica para levantar las piedras, pero no es tampoco super hiper difícil. Nada más digamos lleva más mañas xD.

Empujar objetos

Dificultad: NADA xD.

Se resume en que al presionar el botón, el evento dé un paso a la dirección contraria del héroe, para lo que existe un comando ya.
Código:

Inicio: Presionar botón
<>Mover evento: Este evento
    : Huir del héroe

Mover objetos hacia varias direcciones

Dificultad: No mucha (?).

Esta es una versión simplificada, porque hay formas mejores de hacerlo más visual y etcétera.
El resumen del evento sería que al interactuar con el evento, activará un estado de mover piedra, en el cual espera a que presiones una dirección hacia la que quieras mover el objeto.
Código:

Página 1
=====
Inicio: Presionar botón
<> Nota: aquí puedes mostrar una animación o cambiar el gráfico del personaje o algo así.
<> Operación de interruptor local A poner ON

Página 2
=====
Condición de activación: Interruptor A encendido
Inicio: Automático
<>Condición: Tecla Abajo presionada
  <>Mover evento: Este evento
      :Mover abajo
  <>Mover evento: Personaje
      :Mover abajo
  <>Operación de interruptor local: A poner OFF
:Excepción
  <>Condición: Tecla Arriba presionada
    <>Mover evento: Este evento
        :Mover arriba
    <>Mover evento: Personaje
        :Mover arriba
    <>Operación de interruptor local: A poner OFF
  :Excepción
    <>Condición: Tecla Izquierda presionada
      <>Mover evento: Este evento
          :Mover izquierda
      <>Mover evento: Personaje
          :Mover izquierda
      <>Operación de interruptor local: A poner OFF
    :Excepción
      <>Condición: Tecla Derecha presionada
        <>Mover evento: Este evento
            :Mover derecha
        <>Mover evento: Personaje
              :Mover derecha
        <>Operación de interruptor local: A poner OFF
      :Excepción
        <>Condición: Tecla B presionada
          <>Operación de interruptor local: A poner OFF
        :Fin
      :Fin
    :Fin
  :Fin
:Fin

Y bueno, la otra sería lo de levantar objetos y eso pero para eso ocupas algunos gráficos extra para el personaje cargando el objeto.

Levantar y poner objetos (?)

Dificultad: Más o menos.

La idea del engine es parecida a la del anterior. Usa un estado en que estás levantando algo. El evento por eso es un poco más complejo. Necesitas hacer que sólo puedas levantar un objeto, y aparte por ejemplo si te vas del mapa, pues hay que hacer algo con eso... porque con métodos convencionales no puedes llevar eventos fuera del mapa xd.

Código:

Página 1
=====
Activación: Presionar botón
<>Condición: Interruptor [ALGO_EN_MANOS] está OFF
  <>Operación de variable: [POS_X] poner Personaje Pantalla X
  <>Operación de variable: [POS_Y] poner Personaje Pantalla Y
  <>Operación de variable: [POS_Y] restar 48 <------- probar cambiando este valor para que calce con tu personaje
  <>Mostrar imagen: 1, piedra, Centrado (Variable [POS_X], [POS_Y])
  <>Operación de interruptor: [ALGO_EN_MANOS] poner ON
  <>Operación de interruptor local: A poner ON
:Fin

Página 2
=====
(el gráfico en la página 2 será vacío, nada).
Condición de activación: Interruptor A encendido
Activación: Proceso paralelo
<>Operación de variable: [POS_X] poner Personaje Pantalla X
<>Operación de variable: [POS_Y] poner Personaje Pantalla Y
<>Operación de variable: [POS_Y] restar 48 <------- probar cambiando este valor para que calce con tu personaje
<>Mover imagen: 1, Centrado (Variable [POS_X], [POS_Y])
<>Esperar 0 frames <---------------------------------- al menos en RM2k3 poner esperas de 0 frames a veces reducía el lag xD.
<>Condición: Tecla B presionada
  <>Operación de variable: [POS_X] poner Personaje Coordenada X
  <>Operación de variable: [POS_Y] poner Personaje Coordenada Y
  <>Condición: Personaje Mirando hacia Abajo
    <>Operación de variable: [POS_Y] sumar 1
  :Excepción
    <>Condición: Personaje Mirando hacia Arriba
      <>Operación de variable: [POS_Y] restar 1
    :Excepción
    <>Condición: Personaje Mirando hacia Izquierda
        <>Operación de variable: [POS_X] restar 1
      :Excepción
        <>Condición: Personaje Mirando hacia Derecha
          <>Operación de variable: [POS_X] sumar 1
        :Fin
      :Fin
    :Fin
  :Fin
  <>Elegir posición de evento: Este evento, (Variable [POS_X][POS_Y])
  <>Borrar imagen 1
  <>Operación de interruptor: [ALGO_EN_MANOS] poner ON
  <>Operación interruptor local A poner OFF
:Fin

Una pequeña molestia más de este evento será solucionar lo de no poderse teletransportar mientras tengas el objeto en mano. Una opción es que el evento de teletransporte no se dé a cabo si el interruptor [ALGO_EN_MANOS] está activo. Algo como esto por ejemplo:
Código:

<>Condición: Interruptor [ALGO_EN_MANOS] está OFF
  <>Teletransportar: Etcétera (9,7)
:Fin

Y creo que esos ejemplos funcionan. Son posibles soluciones, jamás las únicas xD, como quien dice uno puede hacer las cosas de muchas formas en el maker.

Salut!
avatar
orochii
Reportero

0/3

Créditos 7724

Gracias : 436

Volver arriba Ir abajo

Re: Solicitud sistema de empujar, jalar objetos

Mensaje por Broly312 el 2018-08-11, 17:45

Muchas gracias por responder
Pero el segundo engine no me funciona bien el personaje no mueve el objeto en dirección a sí mismo.
Ósea si el personaje está arriba del objeto, no lo mueve hacia arriba, y si el está abajo no lo mueve hacia abajo así sucesivamente.
avatar
Broly312
Iniciado
Iniciado

0/3

Créditos 16

Gracias : 2

Volver arriba Ir abajo

Re: Solicitud sistema de empujar, jalar objetos

Mensaje por orochii el 2018-08-12, 05:04

Idea: En todas las partes donde se mueve al evento y al personaje, vamos a quitarle la casilla de "Ignorar si no se puede", y para que el personaje no se quede atascado por eso, vamos a darle un movimiento cualquiera unos frames después para desatascarlo.

Entonces, busca todas las partes que pusimos algo como esto:
<>Mover evento: Este evento (y una dirección)
<>Mover evento: Personaje (y la misma dirección)

Lo que harás es desmarcar en ambos, en las cuatro situaciones, la casilla "ignorar si no se puede". Eso hará que el evento/personaje intente hacer todo movimiento hasta que lo logre. Puedes dejarlo así y probarlo para que veas lo que sucede entonces: en ciertas situaciones, el personaje se atascará xD.
Pero entonces haremos una pequeña tontería:

Código:
<>Mover evento: Este evento (y una dirección)
<>Mover evento: Personaje (y la misma dirección)
<>Esperar 4 frames <añadimos una pequeña espera para darle tiempo a que los movimientos sucedan
<>Mover evento: Personaje (marcar ignorar si no se puede esta vez)
    : Seguir al héroe

Así, el evento y el personaje intentarán un rato hacer el movimiento, y después de la espera le decimos al menos al personaje que deje de intentarlo xD. Si el evento se mueve solo tras quitar al personaje del camino, puedes probar a poner un comando igual para el evento.

Espero se haya entendido, salut!

(Qué dicha que lo otro haya servido, tenía dudas porque lo hice sin probar xD).
avatar
orochii
Reportero

0/3

Créditos 7724

Gracias : 436

Volver arriba Ir abajo

Re: Solicitud sistema de empujar, jalar objetos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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