¡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.]

#1 [VX] Script Snowboard el Mar Feb 28, 2012 11:39 am

FIGO

avatar
Con este script el personaje simula estar patinando sobre hielo.
Es muy divertido el efecto y hasta cuesta un poco manejar.
He traducido como pude del japonés,solo lo más importante. Muy fácil de configurar ya que están explicadas las opciones en el script. Activar con un evento el interruptor (está configurado el Nº5), se puede colocar un temporizador para finalizarlo si queremos hacer algún mini juego.
Por ultimo el patinaje se realiza sobre los tiles de paso, por lo cual es una buena opción transportar el personaje a algún mapa activando el patinaje.

No coloqué imagen ya que no disfrutarías el efecto.

Creditos: tomaky

Código:
#==============================================================================
# ★ RGSS2_Snowboard(?)
# tomoaky (http://hikimoki.hp.infoseek.co.jp/)
#
# 2010/03/10  公開
#
# Como operar
# Al girar ... ← →
# Aceleración ... ↑
# Desaceleración ... ↓
#
#Pegar sobre main
#Crear un evento con interruptor Nª5 activado (en este caso), o cambiar.
#==============================================================================

#==============================================================================
# ■ Configuración
#==============================================================================
module TSB
  SW_SNOWBOARD = 5              # ID del interruptor de inicio
  SPEED_MAX    = 48.0          # velocidad max
  SPEED_MIN    = 16.0          # velocidad min
  SPEED_UP    = 0.25          # aceleracion
  SPEED_ANGLE  = 0.05          # velocidad de giro
end

#==============================================================================
# ■ Game_Player
#==============================================================================
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● Inicialización de objetos
  #--------------------------------------------------------------------------
  alias tsb_game_player_initialize initialize
  def initialize
    tsb_game_player_initialize
    @snowboard = false
  end
  #--------------------------------------------------------------------------
  # ●Fallo durante el desplazamiento
  #--------------------------------------------------------------------------
  def moving?
    return @snowboard ? false : super
  end
  #--------------------------------------------------------------------------
  # ○ 方向ボタン入力による移動処理(スノーボード)
  #--------------------------------------------------------------------------
  def move_by_input_snowboard
    return if $game_message.visible
    case Input.dir4
    when 2  # desaceleración
      @snowboard_speed = [@snowboard_speed - TSB::SPEED_UP, TSB::SPEED_MIN].max
    when 8  # aceleración
      @snowboard_speed = [@snowboard_speed + TSB::SPEED_UP, TSB::SPEED_MAX].min
    when 4  # giro a la izquierda
      @snowboard_angle -= TSB::SPEED_ANGLE
    when 6  # rueda derecha
      @snowboard_angle += TSB::SPEED_ANGLE
    end
  end
  #--------------------------------------------------------------------------
  # ● Marco de actualización
  #--------------------------------------------------------------------------
  alias tsb_game_player_update update
  def update
    if @snowboard != $game_switches[TSB::SW_SNOWBOARD]
      @snowboard = $game_switches[TSB::SW_SNOWBOARD]  # conmutador
      if @snowboard # De OFF a ON
        case @direction    # Para establecer la orientación de la dirección de la corriente de circulación,
        when 2; @snowboard_angle = Math::PI / 2
        when 4; @snowboard_angle = Math::PI
        when 6; @snowboard_angle = 0.0
        when 8; @snowboard_angle = Math::PI * 3 / 2
        end
        @snowboard_speed = TSB::SPEED_MIN  # el valor de la velocidad inicial es la velocidad mínima
      else          # De ON a OFF
        @real_x, @real_y = @x << 8, @y << 8
      end
    end
    if @snowboard  # スノーボード状態の処理
      last_real_x, last_x = @real_x, @real_x + 128 >> 8
      last_real_y, last_y = @real_y, @real_y + 128 >> 8
      unless $game_map.interpreter.running?
        move_by_input_snowboard
        @priority_type = 0              # 足元の通行判定用にプライオリティを変更
        vx = (Math.cos(@snowboard_angle) * @snowboard_speed).to_i
        w = $game_map.width << 8
        @real_x = (@real_x + vx + w) % w
        @x = @real_x + 128 >> 8
        @real_x, @x = last_real_x, last_x unless passable?(@x, @y)
        vy = (Math.sin(@snowboard_angle) * @snowboard_speed).to_i
        h = $game_map.height << 8
        @real_y = (@real_y + vy + h) % h
        @y = @real_y + 128 >> 8
        @real_y, @y = last_real_y, last_y unless passable?(@x, @y)
        @priority_type = 1              # プライオリティを元に戻す
        if vx.abs > vy.abs              # 移動方向を向く
          vx > 0 ? turn_right : turn_left
        elsif vx.abs < vy.abs
          vy > 0 ? turn_down : turn_up
        end
        if last_x != @x or last_y != @y # 座標に変化があればイベント接触判定
          check_event_trigger_here([1, 2])
        end
        if not $game_message.visible and Input.trigger?(Input::C)
          check_action_event
        end
      end
      super
      update_scroll(last_real_x, last_real_y)
    else            # 通常の処理
      tsb_game_player_update
    end
  end
end


SALUDOS

FIGO

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.