Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4140 miembros registrados.
El último usuario registrado es ReyPizza.

Nuestros miembros han publicado un total de 84809 mensajes en 12071 argumentos.

[XP] Advanced Scroll System

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Advanced Scroll System

Mensaje por Wecoc el 2017-04-22, 23:01

El sistema que presento hoy amplía el funcionamiento del scroll en mapa, es decir el movimiento de la cámara.

Éste no es el primer script de scroll que hago, pero es el que tiene más opciones.
Sé que hay más scripts de ésto por la red también, pero lo he hecho lo más intuitivo posible, y algunas opciones son bastante únicas.

En realidad son dos scripts distintos e independientes, pero vienen a controlar aspectos muy parecidos del juego. Son compatibles entre ellos, y recomiendo usar lo dos.

Advanced Scroll Control

Por defecto si quieres mover la cámara a un punto lejano del actual, solo permite movimientos verticales y horizontales "enteros", por lo que puede quedar poco fluido. Con éste script hay la opción de ir directamente a un punto de la pantalla de modo limpio. Otra novedad es el movimiento instantáneo a un punto, definiendo velocidad 0.

  • Definir movimiento de pantalla similar a por defecto (con dirección, distancia y velocidad)
  • Definir movimiento hacia las coordenadas X, Y (con los frames que tardará)
  • Definir movimiento respecto las coordenadas actuales (con los frames que tardará)
  • Ir hacia las coordenadas del jugador o de un evento
  • Memorizar scroll actual y recuperarlo tras hacerle cambios

Código:
Código:
#==============================================================================
# ** [XP] Advanced Scroll Control v1.0
#------------------------------------------------------------------------------
# Autor: Wecoc (créditos opcionales)
#------------------------------------------------------------------------------
# Éste script permite controlar algunos aspectos del scroll del mapa
# Añade la opción de mover la pantalla a una coordenada fija, y de definir
# el scroll por duración en vez de por velocidad.
#------------------------------------------------------------------------------
# * Definir movimiento de pantalla similar a por defecto:
#
#    $game_map.start_scroll(direction, distance)
#    $game_map.start_scroll(direction, distance, speed)
#
#        direction - 2: abajo, 4: izquierda, 6: derecha, 8: arriba
#        distance: distancia en tiles
#        speed: velocidad, por defecto vale 0 (automático), otros valores van
#        por defecto (de 1 a 6 como en el comando Scroll de mapa)
#
# * Definir movimiento hacia las coordenadas X, Y
#
#    $game_map.set_scroll(x, y, duration)
#
# * Definir movimiento respecto al actual
#
#    $game_map.move_scroll(dx, dy, duration)
#
#        dx - Distancia respecto a la X actual
#        dy - Distancia respecto a la Y actual
#
# * Atajos para el scroll horizontal y vertical
#
#    scroll_down  |  scroll_down(distance)  |  scroll_down(distance, frames)
#    scroll_left  |  scroll_left(distance)  |  scroll_left(distance, frames)
#    scroll_right  |  scroll_right(distance)  |  scroll_right(distance, frames)
#    scroll_up    |  scroll_up(distance)    |  scroll_up(distance, frames)
#
# * Atajo para el scroll hacia una coordenada concreta
# (similar a $game_map.set_scroll)
#
#    scroll_to(x, y)    |  scroll_to(x, y, frames)
#
# * Atajos para el scroll hacia el personaje o hacia un evento
#
#    scroll_to_player    |  scroll_to_player(frames)
#    scroll_to_event(id) |  scroll_to_event(id, frames)
#
# * Memorizar el scroll actual y recuperar memorizado
#
#    scroll_memorize
#    scroll_restore      |  scroll_restore(frames)
#==============================================================================

#==============================================================================
# ** Graphics
#==============================================================================

module Graphics
  class << self
    #------------------------------------------------------------------------
    # * Width
    #------------------------------------------------------------------------
    unless method_defined?(:width)
      def width
        return 640
      end
    end
    #------------------------------------------------------------------------
    # * Height
    #------------------------------------------------------------------------
    unless method_defined?(:height)
      def height
        return 480
      end
    end
  end
end

#==============================================================================
# ** Game_System
#==============================================================================

class Game_System
  attr_accessor :memorized_scroll_x
  attr_accessor :memorized_scroll_y
  #--------------------------------------------------------------------------
  # * Scroll Memorize
  #--------------------------------------------------------------------------
  def scroll_memorize
    @memorized_scroll_x = $game_map.display_x
    @memorized_scroll_y = $game_map.display_y
  end
end

#==============================================================================
# ** Game_Map
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  alias advanced_cam_setup setup unless $@
  def setup(map_id)
    advanced_cam_setup(map_id)
    @scroll_dest_x = 0
    @scroll_dest_y = 0
    @scroll_duration = 0
    $game_system.memorized_scroll_x = nil
    $game_system.memorized_scroll_y = nil
  end
  #--------------------------------------------------------------------------
  # * Start Scroll
  #--------------------------------------------------------------------------
  def start_scroll(direction, distance, speed=0)
    dx = 0 ; dy = 0 ; duration = 1
    case direction
    when 2, 1, 3 # Down
      dy = distance
    when 4, 1, 7 # Left
      dx = -distance
    when 6, 3, 9 # Right
      dx = distance
    when 8, 7, 9 # Up
      dy = -distance
    end
    if speed > 0
      duration = ((128 * distance.to_f) / (2 ** speed)).ceil
    end
    move_scroll(dx, dy, duration)
  end
  #--------------------------------------------------------------------------
  # * Set Scroll
  #--------------------------------------------------------------------------
  def set_scroll(x, y, duration)
    dx = Graphics.width  / 32
    dy = Graphics.height / 32
    sx = x * 128 - (((dx - 1) * 128) - 32) / 2
    sy = y * 128 - (((dy - 1) * 128) - 32) / 2
    # @scroll_dest_x = [[0, sx].max, dx * 128].min
    # @scroll_dest_x = [[0, sy].max, dy * 128].min
    @scroll_dest_x = sx
    @scroll_dest_y = sy
    @scroll_duration = duration
  end
  #--------------------------------------------------------------------------
  # * Move Scroll
  #--------------------------------------------------------------------------
  def move_scroll(dx, dy, duration)
    @scroll_dest_x = @display_x + (dx * 128)
    @scroll_dest_y = @display_y + (dy * 128)
    @scroll_duration = duration
  end
  #--------------------------------------------------------------------------
  # * Scroll direction fix
  #--------------------------------------------------------------------------
  unless $@
    alias wec_camfix1_scroll_down  scroll_down
    alias wec_camfix1_scroll_left  scroll_left
    alias wec_camfix1_scroll_right scroll_right
    alias wec_camfix1_scroll_up    scroll_up
  end
  def scroll_down(distance)
    last_scroll = @display_y
    wec_camfix1_scroll_down(distance)
    if @scroll_duration > 0
      dy = last_scroll - @display_y
      @scroll_dest_y -= dy
    end
  end
  def scroll_left(distance)
    last_scroll = @display_x
    wec_camfix1_scroll_left(distance)
    if @scroll_duration > 0
      dx = last_scroll - @display_x
      @scroll_dest_x -= dx
    end
  end
  def scroll_right(distance)
    last_scroll = @display_x
    wec_camfix1_scroll_right(distance)
    if @scroll_duration > 0
      dx = last_scroll - @display_x
      @scroll_dest_x -= dx
    end
  end
  def scroll_up(distance)
    last_scroll = @display_y
    wec_camfix1_scroll_up(distance)
    if @scroll_duration > 0
      dy = last_scroll - @display_y
      @scroll_dest_y -= dy
    end
  end
  #--------------------------------------------------------------------------
  # * Determine if Scrolling
  #--------------------------------------------------------------------------
  def scrolling?
    return (@scroll_rest > 0) || (@scroll_duration > 0)
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    refresh if $game_map.need_refresh
    update_scroll
    for event in @events.values
      event.update
    end
    for common_event in @common_events.values
      common_event.update
    end
    update_fog
  end
  #--------------------------------------------------------------------------
  # * Update Scroll
  #--------------------------------------------------------------------------
  def update_scroll
    if @scroll_duration > 0
      d = @scroll_duration
      @display_x = (@display_x * (d - 1) + @scroll_dest_x - 16) / d
      @display_y = (@display_y * (d - 1) + @scroll_dest_y - 16) / d
      @scroll_duration -= 1
      if @scroll_duration == 0
        @display_x = @scroll_dest_x - 16 if @display_x != @scroll_dest_x - 16
        @display_y = @scroll_dest_y - 16 if @display_y != @scroll_dest_y - 16
      end
    end
    @display_x = [0, @display_x].max
    @display_y = [0, @display_y].max
    @display_x = [@display_x, (self.width  - Graphics.width  / 32) * 128].min
    @display_y = [@display_y, (self.height - Graphics.height / 32) * 128].min
  end
  #--------------------------------------------------------------------------
  # * Update Fog
  #--------------------------------------------------------------------------
  def update_fog
    @fog_ox -= @fog_sx / 8.0
    @fog_oy -= @fog_sy / 8.0
    if @fog_tone_duration >= 1
      d = @fog_tone_duration
      target = @fog_tone_target
      @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
      @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
      @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
      @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
      @fog_tone_duration -= 1
    end
    if @fog_opacity_duration >= 1
      d = @fog_opacity_duration
      @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
      @fog_opacity_duration -= 1
    end
  end
end

#==============================================================================
# ** Interpreter
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # * Scroll Down
  #--------------------------------------------------------------------------
  def scroll_down(distance=1, frames=20)
    $game_map.move_scroll(0, distance, frames / 2)
  end
  #--------------------------------------------------------------------------
  # * Scroll Left
  #--------------------------------------------------------------------------
  def scroll_left(distance=1, frames=20)
    $game_map.move_scroll(-distance, 0, frames / 2)
  end
  #--------------------------------------------------------------------------
  # * Scroll Right
  #--------------------------------------------------------------------------
  def scroll_right(distance=1, frames=20)
    $game_map.move_scroll(distance, 0, frames / 2)
  end
  #--------------------------------------------------------------------------
  # * Scroll Up
  #--------------------------------------------------------------------------
  def scroll_up(distance=1, frames=20)
    $game_map.move_scroll(0, -distance, frames / 2)
  end
  #--------------------------------------------------------------------------
  # * Scroll To [X, Y]
  #--------------------------------------------------------------------------
  def scroll_to(x, y, frames=20)
    $game_map.set_scroll(x, y, frames / 2)
  end
  #--------------------------------------------------------------------------
  # * Scroll To Player
  #--------------------------------------------------------------------------
  def scroll_to_player(frames=20)
    scroll_to($game_player.x, $game_player.y, frames)
  end
  #--------------------------------------------------------------------------
  # * Scroll To Event
  #--------------------------------------------------------------------------
  def scroll_to_event(event_id, frames=20)
    event = $game_map.events[event_id]
    scroll_to(event.x, event.y, frames)
  end
  #--------------------------------------------------------------------------
  # * Scroll Memorize
  #--------------------------------------------------------------------------
  def scroll_memorize
    $game_system.scroll_memorize
  end
  #--------------------------------------------------------------------------
  # * Scroll Restore
  #--------------------------------------------------------------------------
  def scroll_restore(frames=20)
    dx = $game_system.memorized_scroll_x
    dy = $game_system.memorized_scroll_y
    return if dx.nil? or dy.nil?
    $game_map.instance_eval("@scroll_dest_x = #{dx}")
    $game_map.instance_eval("@scroll_dest_y = #{dy}")
    $game_map.instance_eval("@scroll_duration = #{frames / 2}")
  end
end

Advanced Scroll Focus

Éste script permite desactivar el siguimiento de la cámara con el personaje, y además también permite enfocarla a otros eventos del mapa.

  • Fijar pantalla (dejar de seguir)
  • Centrar al personaje (por defecto)
  • Centrar a un evento
  • Variar las coordenadas que se consideran como centrales (por defecto {0, 0})
  • Memorizar estado actual y recuperarlo tras hacerle cambios

Código:
Código:
#==============================================================================
# ** [XP] Advanced Scroll Focus v1.0
#------------------------------------------------------------------------------
# Autor: Wecoc (créditos opcionales)
#------------------------------------------------------------------------------
# Éste script permite desactivar el siguimiento de la cámara con el personaje,
# y además también permite enfocarla a otros eventos del mapa.
#------------------------------------------------------------------------------
# * Fijar pantalla (dejar de seguir)
#
#     $game_system.scroll_fixed = true / false
#
# * Fijar pantalla al personaje
#
#     focus_on_player
#
# * Fijar pantalla a un evento
#
#     focus_on_event(ID de evento)
#
# * Memorizar estado focus actual y recuperarlo
#
#     memorize_focus
#     restore_focus
#
# * Descentrar fijado a una desviación concreta
#
#     $game_system.scroll_dx = (valor)
#     $game_system.scroll_dy = (valor)
#
#==============================================================================

#==============================================================================
# ** Game_System
#==============================================================================

class Game_System
  attr_accessor :scroll_fixed
  attr_accessor :scroll_focus
  attr_accessor :scroll_dx
  attr_accessor :scroll_dy
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  alias advanced_cam_ini initialize unless $@
  def initialize
    advanced_cam_ini
    @scroll_fixed = false
    @scroll_focus = 0
    @scroll_dx = 0
    @scroll_dy = 0
  end
  #--------------------------------------------------------------------------
  # * Focus Memorize
  #--------------------------------------------------------------------------
  def memorize_focus
    @memorized_scroll_fixed = @scroll_fixed
    @memorized_scroll_focus = @scroll_focus
    @memorized_scroll_dx = @scroll_dx
    @memorized_scroll_dy = @scroll_dy
  end
  #--------------------------------------------------------------------------
  # * Focus Restore
  #--------------------------------------------------------------------------
  def restore_focus
    @scroll_fixed = @memorized_scroll_fixed
    @scroll_focus = @memorized_scroll_focus
    @scroll_dx = @memorized_scroll_dx
    @scroll_dy = @memorized_scroll_dy
  end
end

#==============================================================================
# ** Game_Map
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  alias advanced_focus_setup setup unless $@
  def setup(map_id)
    advanced_focus_setup(map_id)
    $game_system.scroll_fixed = false
    $game_system.scroll_focus = 0
    $game_system.scroll_dx = 0
    $game_system.scroll_dy = 0
  end
end

#==============================================================================
# ** Game_Character
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias advanced_cam_scroll_event_upd update unless $@
  def update
    current_x = @real_x + $game_system.scroll_dx * 128
    current_y = @real_y + $game_system.scroll_dy * 128
    advanced_cam_scroll_event_upd
    if $game_system.scroll_fixed == false
      if self.is_a?(Game_Player) && $game_system.scroll_focus == 0
        update_scroll(current_x, current_y)
      end
      if self.is_a?(Game_Event) && $game_system.scroll_focus == @event.id
        update_scroll(current_x, current_y)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update Scroll
  #--------------------------------------------------------------------------
  def update_scroll(rx, ry)
    w = Graphics.width  rescue 640
    h = Graphics.height rescue 480
    center_x = ((w / 2) - 16) * 4
    center_y = ((h / 2) - 16) * 4
    current_x = @real_x + $game_system.scroll_dx * 128
    current_y = @real_y + $game_system.scroll_dy * 128
    # Abajo
    if (current_y > ry && current_y - $game_map.display_y > center_y)
      $game_map.scroll_down(current_y - ry)
    end
    # Izquierda
    if (current_x < rx && current_x - $game_map.display_x < center_x)
      $game_map.scroll_left(rx - current_x)
    end
    # Derecha
    if (current_x > rx && current_x - $game_map.display_x > center_x)
      $game_map.scroll_right(current_x - rx)
    end
    # Arriba
    if (current_y < ry && current_y - $game_map.display_y < center_y)
      $game_map.scroll_up(ry - current_y)
    end
  end
end

#==============================================================================
# ** Game_Player
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    last_moving = moving?
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      case Input.dir4
      when 2 # Abajo
        move_down
      when 4 # Izquierda
        move_left
      when 6 # Derecha
        move_right
      when 8 # Arriba
        move_up
      end
    end
    super
    unless moving?
      if last_moving
        result = check_event_trigger_here([1,2])
        if result == false
          unless $DEBUG and Input.press?(Input::CTRL)
            if @encounter_count > 0
              @encounter_count -= 1
            end
          end
        end
      end
      if Input.trigger?(Input::C)
        check_event_trigger_here([0])
        check_event_trigger_there([0,1,2])
      end
    end
  end
end

#==============================================================================
# ** Interpreter
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # * Focus on Player
  #--------------------------------------------------------------------------
  def focus_on_player
    $game_system.scroll_fixed = false
    $game_system.scroll_focus = 0
  end
  #--------------------------------------------------------------------------
  # * Focus on Event
  #--------------------------------------------------------------------------
  def focus_on_event(event_id)
    $game_system.scroll_fixed = false
    $game_system.scroll_focus = event_id
  end
  #--------------------------------------------------------------------------
  # * Focus Memorize
  #--------------------------------------------------------------------------
  def memorize_focus
    $game_system.memorize_focus
  end
  #--------------------------------------------------------------------------
  # * Focus Restore
  #--------------------------------------------------------------------------
  def restore_focus
    $game_system.restore_focus
  end
end

Con astucia se pueden hacer otras cosas más complejas a partir de éste sistema, lo dejo a vuestras manos para que hagáis escenas más dinámicas y engines con una cámara más optimizada.


Última edición por Wecoc el 2017-04-25, 19:25, editado 5 veces (Razón : Formato del mensaje + Bugfix)
avatar
Wecoc
Administrador
Administrador



Créditos 9218

Gracias : 493

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por BruMaster7Maker el 2017-04-23, 00:15

Está genial!!! Sobretodo para el clásico evento que enfoca al Boss Final!!! Y es genial además que haga que el movimiento de la cámara sea fluído!!! Sin dudas lo usaré!!!
avatar
BruMaster7Maker
Reportero

0/3

Créditos 46

Gracias : 15

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por Khaikaa el 2017-04-23, 02:20

Muy buen aporte Very Happy
avatar
Khaikaa
Iniciado
Iniciado

0/3

Créditos 31

Gracias : 7

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por Wecoc el 2017-04-23, 06:43

Espero que os sirva. Acabo de arreglar un bug en el primer script, por una situación que se me había pasado por alto. Espero que ahora todo funcione como debe... igualmente si véis algo raro comentadlo.

Para completar pongo una pequeña guía de cómo hacer que en una determinada zona la pantalla se fije a un punto distinto (en éste caso más arriba) que normalmente, pero siguiendo igualmente el movimiento del héroe.

Para ello necesitaréis un evento de entrada al área y uno de salida (en cada punto donde se pueda entrar o salir). Aquí los marqué de distinto color.



Así solo cuando estás en el puente la pantalla queda más arriba, por lo que el jugador puede ver que hay un limo en el inicio de la catarata.


Ya lo sé, menudo mapa xD

Si se usa mi script Area Support se podría usar eso también para ese tipo de cambios de visión dinámica por el mapa, pero en la mayoría de casos no creo que valga la pena.

Pongo por último otra alternativa algo distinta aquí: Heretic's Advanced Camera System
avatar
Wecoc
Administrador
Administrador



Créditos 9218

Gracias : 493

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por orochii el 2017-04-23, 18:02

Wecoc. Te tengo una petición :^D.

Pensaba que para jefes aunque es bueno tener el foco sobre el enemigo, también es necesario que se vea al jugador, porque sino pues te mueves a ciegas xD.

Entonces me hice este esquema.

Los números sería la prioridad. En buena teoría hace el check para el primero, y luego el check para el segundo, y se acomoda de forma que ambas se cumplan en lo posible, pero con preferencia a que se vea al personaje. El foco caería en el enemigo si el jugador está suficientemente visible, pero si no se ve se desplaza un poco hasta que se vea.

Es una idea xD. Y también es algo que pensaba iba a necesitar para un juego, entonces en buena teoría te pido algo que usaré mientras yo hago otras cosas 8'D!!!. asdkjalskdjasld

Salut!
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6389

Gracias : 332

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por Wecoc el 2017-04-23, 18:54

Si usas $game_system.scroll_fixed = true y luego usas scroll_to_player en proceso paralelo da una sensación similar a si la cámara lo sigue igualmente (aunque parece más tipo Smooth Scroll)
Si eso te vale es cuestión de hacer que cerca del evento se centre en un punto intermedio entre el enemigo y el player, mientras que totalmente alejado se centre solo en el player.



Quizá haya mejores formas de hacerlo pero no se me ocurren muchas, la verdad. Puede que ampliando el segundo script para permitir un focus a valores dinámicos más avanzados (mediante eval) se logre mejor resultado. Sería un add-on al segundo script. Pero por ahora lo más cerca que puedo ofrecerte para hacer eso es lo que he puesto.

No es un script especialmente fácil de manejar precisamente, pero hice lo que pude con eso.
avatar
Wecoc
Administrador
Administrador



Créditos 9218

Gracias : 493

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por Ledai el 2017-04-25, 17:39

Pero cuando has publicado este Script? que no me enteré O,O!!!

En serio, me ha encantado; la verdad es que tengo que decir algo como esto:


Creo que me quedaré solo con le primero que pusiste, es el que más se acopla a las ideas que tengo, temía que me diera error con el otro script de Scrool que tengo, pero no, ambos se complementan a la perfección por el momento.

De todos modos, seguiré testeando para cerciorarme antes de hacerme ilusiones y si veo que se carga algo, pues prescindo, como siempre.

En serio, de dónde sacas la info para hacer justo lo que "nesecito"?? Me espías o k ¬_¬ ? XDD
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 2354

Gracias : 170

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por Ledai el 2017-04-25, 19:04

Siento el Doble Post (Pueden borrar este mensaje cuando se corrija el error)

Vengo a reportar un extraño bug del primer script (Es el que he testeado, del otro no lo sé.)

Resumen: Cuando estás de la mitad del mapa para abajo, el Scrool hacia coordenadas usando cualquier comando es erróneo.
Confirmado tras buscar minuciosamente el porqué sucede.

Si usas el script para scroolear hacia un evento o hacia el personaje, y tu posición está por debajo del medio del mapa, el scrool se dispara a una coordenada que nada tiene que ver con la solicitada.

Nota: He probado el script en un proyecto en blanco por descartar incompatibilidades, y no, no es problema de eso.

Nota dos: La mejor forma de encontrar el error que digo es probarlo en un mapa mediano desde sus cuatro esquinas.

Edt: Me da la impresión, que al pasar el eje horizontal el Scrool se invierte... es muy raro.
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 2354

Gracias : 170

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

Mensaje por Wecoc el 2017-04-25, 19:23

Ya veo, creo que sobrecompliqué un poco la fórmula en el método "set_scroll".
He tratado de arreglarlo, a ver si ahora te funciona bien.

Edit: Confirmado, ya funciona bien.
avatar
Wecoc
Administrador
Administrador



Créditos 9218

Gracias : 493

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Advanced Scroll System

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.