Fera Inzeki
Conectarse

Unirse al foro, es rápido y fácil

Fera Inzeki
Conectarse
Fera Inzeki
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Movimiento Suave

Ir abajo

Movimiento Suave Empty Movimiento Suave

Mensaje por KireSerdna Jue Mar 15, 2012 9:25 pm

Buenas!
Si alguna vez haz tenido esa molesta acción de que cuando haces un mapa muy grande y caminas por el, se ve como si fueses por saltitos
Aquí te doy una buena solución.
Solo debes pegarlo encima de Main, el efecto que da es muy agradable :oMmm:

Plataforma: Rpg Maker Xp
Autor: Bunga Tepi Jalan

Instrucciones: Copia y pega este script encima de main en la base de script

Código:
#===========================================================================
# Listra Smooth Scroller Module (RMXP)
# Autor: Bunga Tepi Jalan
# Versión 1.0
# Traducción (en fase): D.A.C.
#==============================================================================
# Propiedad de Bunga Tepi Jalan.
#  * No te olvides de los créditos en caso de usar este script.
#  * Eres libre de compartir - copiar, distribuir y comunicar públicamente la obra.
#  * Eres libre de reescribir - para adaptar el trabajo.
#  * Se prohíbe el uso de este script para fines comerciales.
#==============================================================================
# Información:
#  Este script hace que el desplazamiento del mapa sea más suave.
# Si encuentras algún problema o tienes alguna sugerencia, mándame un e-mail a 'listra92@gmail.com', o postea en
# cualquiera de las siguientes direcciones:
#  - http://bungatepijalan.wordpress.com
#  - http://www.rpgmakerid.com
#  - http://prodig.forumotion.net
#  - http://vixep.forumsrpg.net
#==============================================================================

module LSSM
  #--------------------------------------------------------------------------
  # * Listra Smooth Scroller Module Configuration
  #--------------------------------------------------------------------------
 
  # Config 1 -- Factor de desplazamiento suave: cuánto más alto sea el valor, más lento es el desplazamiento.
  SMOOTH = 16.0
  # Config 2 -- Desplazamiento del borde del mapeado horizontal y vertical personalizado
  # No exceder CENTER_X y CENTER_Y.
  HBOR = 320 * 4
  VBOR = 240 * 4
  # Config 3 -- ¿Usar HBOR & VBOR?
  USECUSTOMBOR = false
end

#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  This class handles the player. Its functions include event starting
#  determinants and map scrolling. Refer to "$game_player" for the one
#  instance of this class.
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # * Invariables (changed)
  #--------------------------------------------------------------------------
  CENTER_X = 320 * 4  # Center screen x-coordinate * 4
  CENTER_Y = 240 * 4  # Center screen y-coordinate * 4
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Remember whether or not moving in local variables
    last_moving = moving?
    # If moving, event running, move route forcing, and message window
    # display are all not occurring
    unless moving? or $game_system.map_interpreter.running? or
          @move_route_forcing or $game_temp.message_window_showing
      # Move player in the direction the directional button is being pressed
      case Input.dir4
      when 2
        move_down
      when 4
        move_left
      when 6
        move_right
      when 8
        move_up
      end
    end
    # Remember coordinates in local variables
    last_real_x = @real_x
    last_real_y = @real_y
    super
    # Player position as the real target coordinate (times 4)
    # Disable this if you want to use another position at certain event
    target_x = @real_x
    target_y = @real_y
    # Horizontal & vertical scroll border
    if LSSM::USECUSTOMBOR
      hbor = LSSM::HBOR
      vbor = LSSM::VBOR
    else
      hbor = CENTER_X
      vbor = CENTER_Y
    end
    # If character is positioned lower than the center of the screen
    if target_y - $game_map.display_y > 15*128 - vbor
      # Scroll map down
      if target_y > $game_map.height*128 - vbor
        $game_map.scroll_down((($game_map.height - 15)*128 - $game_map.display_y)/LSSM::SMOOTH)
      else
        $game_map.scroll_down((target_y - $game_map.display_y - 15*128 + vbor)/LSSM::SMOOTH)
      end
    end
    # If character is positioned more left on-screen than center
    if target_x - $game_map.display_x < hbor
      # Scroll map left
      if target_x < hbor
        $game_map.scroll_left($game_map.display_x/LSSM::SMOOTH)
      else
        $game_map.scroll_left(($game_map.display_x + hbor - target_x)/LSSM::SMOOTH)
      end
    end
    # If character is positioned more right on-screen than center
    if target_x - $game_map.display_x > 20*128 - hbor
      # Scroll map right
      if target_x > $game_map.width*128 - hbor
        $game_map.scroll_right((($game_map.width - 20)*128 - $game_map.display_x)/LSSM::SMOOTH)
      else
        $game_map.scroll_right((target_x - $game_map.display_x - 20*128 + hbor)/LSSM::SMOOTH)
      end
    end
    # If character is positioned higher than the center of the screen
    if target_y - $game_map.display_y < vbor
      # Scroll map up
      if target_y < vbor
        $game_map.scroll_up($game_map.display_y/LSSM::SMOOTH)
      else
        $game_map.scroll_up(($game_map.display_y + vbor - target_y)/LSSM::SMOOTH)
      end
    end
    # If not moving
    unless moving?
      # If player was moving last time
      if last_moving
        # Event determinant is via touch of same position event
        result = check_event_trigger_here([1,2])
        # If event which started does not exist
        if result == false
          # Disregard if debug mode is ON and ctrl key was pressed
          unless $DEBUG and Input.press?(Input::CTRL)
            # Encounter countdown
            if @encounter_count > 0
              @encounter_count -= 1
            end
          end
        end
      end
      # If C button was pressed
      if Input.trigger?(Input::C)
        # Same position and front event determinant
        check_event_trigger_here([0])
        check_event_trigger_there([0,1,2])
      end
    end
  end
end
KireSerdna
KireSerdna
Adm
Adm

Mensajes : 22
Prestigio : 0
Fecha de inscripción : 15/03/2012
Edad : 31

https://ferainzeki.activo.mx

Volver arriba Ir abajo

Volver arriba


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