RPG maker VX


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

RPG maker VX
RPG maker VX
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Últimos temas
» Script de menu
por maxi Jue 04 Dic 2014, 1:44 pm

» Ayuda intro animado!!!
por maxi Miér 03 Dic 2014, 9:41 pm

» ayuda con este engin
por maxi Miér 03 Dic 2014, 8:42 am

» Hud de Vida 100% Personalizable - Engine Sencillo! Sin Scripts :)
por davidaikago Jue 20 Nov 2014, 10:58 am

» Ultimate parallax control by:GDS [ace]
por arellano Miér 08 Oct 2014, 8:28 pm

» Script Touhou (animated) Map name (v1.4)
por davidaikago Miér 08 Oct 2014, 2:09 pm

» tutorial puerta nueva
por davidaikago Miér 08 Oct 2014, 9:08 am

» cámara de fotos
por davidaikago Miér 08 Oct 2014, 9:05 am

» Imperial Action System II Demo
por davidaikago Miér 08 Oct 2014, 8:47 am

» VE Batalla animada [ACE]
por FhierusIV Jue 18 Sep 2014, 10:57 am

» Nuevo Reglamento del Foro [Vigente desde Septiembre 2014]
por maxi Miér 17 Sep 2014, 8:37 am

» MOG|Animated Title
por Souta21 Mar 09 Sep 2014, 7:24 pm

» Tutorial Engine - Cambiar Character al Equipar Objeto
por maxi Lun 21 Jul 2014, 10:19 am

» Script de climas
por gambasoxd Sáb 19 Jul 2014, 8:58 am

» Script de contraseña(codigo) para abrir un cofre
por rpgame Jue 03 Jul 2014, 6:03 pm

¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


El record de usuarios en línea fue de 117 durante el Mar 09 Ago 2011, 3:39 pm

KGC: Special Transitions

2 participantes

Ir abajo

KGC: Special Transitions Empty KGC: Special Transitions

Mensaje por Raven_EXs Vie 01 Oct 2010, 9:38 pm

TRANSICIAN_PUZZLE

Introduccion:
Este Script muestra un inicio de batalla diferente al que tienen en el juego, haciendo que en vez de que comienze como un torbelino negro, haga que se caiga cuadros a cuadros como un puzzle.

Capturas de Pantalla:
Splas de Bloques:
[Tienes que estar registrado y conectado para ver esa imagen]

Lineas de División:
[Tienes que estar registrado y conectado para ver esa imagen]

Instalacion:
Copiar y Pegar sobre el Main.

Instrucciones:
En la parte de arriba del Script se encuentra la seccion de Personalización

Compatibilidad:
Ninguna incompatibilidad encontrada.

SCRIPT:
Código:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆              Special Transitions - KGC_SpecialTransition        ◆ VX ◆
#_/  ◇                      Last Update: 2008/09/06                        ◇
#_/  ◆                    Translation by Mr. Anonymous                      ◆
#_/  ◆ KGC Site:                                                            ◆
#_/  ◆ http://f44.aaa.livedoor.jp/~ytomy/                                    ◆
#_/  ◆ Translator's Blog:                                                    ◆
#_/  ◆ http://mraprojects.wordpress.com                                      ◆
#_/----------------------------------------------------------------------------
#_/  Este script crea tipos especiales de transición.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
#                            ★ Personalización ★
#==============================================================================

module KGC
  module SpecialTransition
  #          ◆ Detener el proceso de juego durante la transición ◆
  #  Este conmutador le permite detener el proceso de juego, mientras que la
  #  transición está teniendo lugar. Tenga en cuenta que fijar este a false
  #      también requiere más potencia de CPU, así que tenlo en cuenta.
  #  true  : El juego se detiene mientras que la transición se ejecuta.
  #  false : Eventos y juego en el mapa continuará funcionando en la transición.
  STOP_WHILE_TRANSITION = true

  #                          ◆ Tamaño de Bloque ◆
  # Determina el tamaño de los bloques, en píxeles.
  SPLASH_SIZE  = 32
 
  #                        ◆ Dispersión de Bloques◆
  #  Esto determina el grado de propagación de los bloques que se mueven
  #  durante la transición.
  SPLASH_VAGUE  = 7.2
 
  #                        ◆ Rotación de Bloques ◆
  # Este conmutador permite activar o desactivar la rotación del bloque.
  #  true  : Cada bloque es girado.
  #  false : No rotación.
  SPLASH_ROTATE = true
 
  #                ◆ Ancho de píxel de la división al azar◆
  #  Esto le permite especificar la anchura de las barras / división como el
  #  usado por la transición la división al azar. (Ver más abajo)
  RAND_STRIPE_SIZE = 2

  #                  ◆ Transición de batalla por defecto ◆
  # Esto le permite establecer el tipo de transición que se utiliza de forma
  # predeterminada.
  #  0..Predeterminado ("Graphics/BattleStart.png" es usado.)
  #  1..Splash
  #  2..División al azar
  DEFAULT_BATTLE_TRANSITION_TYPE = 2
 
  #          ◆ Duración predeterminado de la transición de Batalla◆
  # Esto le permite cambiar la tiempo (en Frames) en el que la transición dura.
  DEFAULT_BATTLE_TRANSITION_DURATION = 60
 
  #                ◆ Dirección del movimiento de la transición ◆
  # Esto le permite especificar que el patrón de movimiento de la transición.
  #  <Splash>
  #  0..Mover al centro  2..Abajo  4..Izquierdo 6..Derecha  8..Arriba
  #  <Divisiones al azar>
  #  0..Horizontal  1..Vertical
  DEFAULT_BATTLE_TRANSITION_DIRECTION = 0
  end
end
#=============================================================================#
#                        ★ Fin de la Personalización ★                              #
#=============================================================================#

#=================================================#
#                    IMPORT                      #
#=================================================#

$imported = {} if $imported == nil
$imported["SpecialTransition"] = true

#=================================================#

#==============================================================================
# □ KGC::SpecialTransition
#==============================================================================

module KGC::SpecialTransition
  # 特殊トランジションタイプ
  module Type
    NONE        = 0  # なし (通常)
    SPLASH      = 1  # スプラッシュ
    RAND_STRIPE = 2  # ランダムストライプ

    VALUE_RANGE = SPLASH..RAND_STRIPE
  end
  # 特殊トランジション方向
  module Direction
    HORIZONTAL = 0
    VERTICAL  = 1
  end
end

#--------------------------------------------------------------------------
# ○ 1 or -1 を返す
#--------------------------------------------------------------------------
def pmrand
  return (rand(2) == 0 ? 1 : -1)
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC
module Commands
  module_function
  #--------------------------------------------------------------------------
  # ○ 戦闘トランジションを変更
  #    type      : 形式
  #    duration  : 時間
  #    direction : 方向
  #--------------------------------------------------------------------------
  def set_battle_transition(type = nil, duration = nil, direction = nil)
    $game_system.battle_transition_type      = type
    $game_system.battle_transition_duration  = duration
    $game_system.battle_transition_direction = direction
  end
  #--------------------------------------------------------------------------
  # ○ 特殊トランジション設定
  #    type      : 形式
  #    duration  : 時間
  #    direction : 方向
  #--------------------------------------------------------------------------
  def set_special_transition(type, duration = 60, direction = 0)
    Graphics.set_special_transition(type, duration, direction)
  end
end
end

class Game_Interpreter
  include KGC::Commands
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Module_Graphics
#==============================================================================

module Graphics
  # 特殊トランジションタイプ
  @@_sp_transition_type = KGC::SpecialTransition::Type::NONE
  # 特殊トランジション方向
  @@_sp_transition_dir = 0
  # 特殊トランジション用バッファ
  @@_sp_transition_buffer = nil
  # 特殊トランジション用スプライト
  @@_sp_transition_sprites = []
  # 特殊トランジション期間
  @@_sp_transition_duration_max = -1
  @@_sp_transition_duration = -1

  module_function
  unless $@
  #--------------------------------------------------------------------------
  # ● トランジション実行
  #--------------------------------------------------------------------------
  class << Graphics
    alias transition_KGC_SpecialTransition transition
  end
  def transition(duration = 10, filename = "", vague = 40)
    if @@_sp_transition_type != KGC::SpecialTransition::Type::NONE
      duration = 0
    end

    transition_KGC_SpecialTransition(duration, filename, vague)

    if KGC::SpecialTransition::STOP_WHILE_TRANSITION
      while @@_sp_transition_duration >= 0
        update
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  class << Graphics
    alias update_KGC_SpecialTransition update
  end
  def update
    update_KGC_SpecialTransition

    if @@_sp_transition_duration >= 0
      update_special_transition
    end
  end
  end  # unless @

  #--------------------------------------------------------------------------
  # ○ 特殊トランジション設定
  #    type    : トランジションタイプ
  #    duration : トランジション期間
  #    dir      : 方向
  #--------------------------------------------------------------------------
  def set_special_transition(type, duration = 90, dir = 0)
    finish_special_transition

    return unless KGC::SpecialTransition::Type::VALUE_RANGE.include?(type)

    @@_sp_transition_type = type
    @@_sp_transition_dir  = dir
    @@_sp_transition_duration_max = duration
    prepare_special_transition
  end
  #--------------------------------------------------------------------------
  # ○ 特殊トランジション準備
  #--------------------------------------------------------------------------
  def prepare_special_transition
    @@_sp_transition_buffer = Graphics.snap_to_bitmap

    # トランジション用変数初期化
    case @@_sp_transition_type
    when KGC::SpecialTransition::Type::SPLASH
      init_splash
    when KGC::SpecialTransition::Type::RAND_STRIPE
      init_rand_stripe
    end
    Graphics.frame_reset
  end
  #--------------------------------------------------------------------------
  # ○ スプラッシュ初期化
  #--------------------------------------------------------------------------
  def init_splash
    @@_sp_transition_duration = @@_sp_transition_duration_max
    @@_splash_dir = []
    @@_splash_angle = []
    size = KGC::SpecialTransition::SPLASH_SIZE
    hsize = size / 2
    cells = (Graphics.width * Graphics.height) / (size ** 2)
    cols = Graphics.width / size
    rect = Rect.new(0, 0, size, size)

    # 各セルの作成・移動方向算出
    cells.times { |i|
      rect.x = i % cols * size
      rect.y = i / cols * size
      sprite = create_special_transition_sprite(rect)
      sprite.bitmap.blt(0, 0, @@_sp_transition_buffer, rect)
      sprite.x += hsize
      sprite.y += hsize
      sprite.ox = sprite.oy = hsize
      @@_sp_transition_sprites << sprite

      x = rect.x / size
      y = rect.y / size
      @@_splash_dir[i] = calc_splash_move_direction(x, y, cells, cols)

      if KGC::SpecialTransition::SPLASH_ROTATE
        @@_splash_angle[i] = rand(24) - 12
      else
        @@_splash_angle[i] = 0
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 特殊トランジション用スプライト生成
  #    rect : スプライトの位置・サイズ
  #--------------------------------------------------------------------------
  def create_special_transition_sprite(rect)
    sprite = Sprite.new
    sprite.bitmap = Bitmap.new(rect.width, rect.height)
    sprite.x = rect.x
    sprite.y = rect.y
    sprite.z = 20000
    return sprite
  end
  #--------------------------------------------------------------------------
  # ○ スプラッシュ移動方向計算
  #    x, y  : 基準位置
  #    cells : セル数
  #    cols  : 列数
  #--------------------------------------------------------------------------
  def calc_splash_move_direction(x, y, cells, cols)
    vague = KGC::SpecialTransition::SPLASH_VAGUE
    vx = vy = 0
    case @@_sp_transition_dir
    when 0  # 中央から広がる
      x -= cols >> 1
      y -= (cells / cols) >> 1
      r = Math.sqrt(x ** 2 + y ** 2) / vague
      if r != 0
        vx = x / r
        vy = y / r
      else
        vx = ( x != 0 ? (x * 1.5) : (pmrand * vague) )
        vy = ( y != 0 ? (y * 1.5) : (pmrand * vague) )
      end
      vx += (rand - 0.5) * vague
      vy += (rand - 0.5) * vague
    when 2  # 下
      rows = cells / cols
      vx = (rand(50) - 25) / 10.0
      vy = 1 + vague * (rows - y) / rows * (1.0 + rand / 5.0)
    when 4  # 左
      vx = -1 - vague * (x + 1) / cols * (1.0 + rand / 5.0)
      vy = (rand(50) - 25) / 10.0
    when 6  # 右
      vx = 1 + vague * (cols - x) / cols * (1.0 + rand / 5.0)
      vy = (rand(50) - 25) / 10.0
    when 8  # 上
      rows = cells / cols
      vx = (rand(50) - 25) / 10.0
      vy = -1 - vague * (y + 1) / rows * (1.0 + rand / 5.0)
    end

    mag = 60.0 / @@_sp_transition_duration_max
    return [vx * mag, vy * mag]
  end
  #--------------------------------------------------------------------------
  # ○ ランダムストライプ初期化
  #--------------------------------------------------------------------------
  def init_rand_stripe
    case @@_sp_transition_dir
    when KGC::SpecialTransition::Direction::VERTICAL
      @@_rand_stripe_direction = 0
    else
      @@_rand_stripe_direction = 1
    end
    size = KGC::SpecialTransition::RAND_STRIPE_SIZE
    bands = (@@_rand_stripe_direction == 0 ?
      Graphics.width : Graphics.height) / size

    @@_sp_transition_duration = @@_sp_transition_duration_max
    @@_rand_stripe_deleted = []
    @@_rand_stripe_deleted_count = 0
    # ランダム消去用配列を生成
    ary = (0...bands).to_a
    @@_rand_stripe_index_array = ary.sort_by { rand }

    sprite = create_special_transition_sprite(@@_sp_transition_buffer.rect)
    sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    sprite.bitmap.blt(0, 0, @@_sp_transition_buffer,
      @@_sp_transition_buffer.rect)
    @@_sp_transition_sprites << sprite
  end
  #--------------------------------------------------------------------------
  # ○ 特殊トランジション更新
  #--------------------------------------------------------------------------
  def update_special_transition
    if @@_sp_transition_duration == 0
      finish_special_transition
      return
    end

    case @@_sp_transition_type
    when KGC::SpecialTransition::Type::SPLASH
      update_splash
    when KGC::SpecialTransition::Type::RAND_STRIPE
      update_rand_stripe
    end
    @@_sp_transition_duration -= 1
  end
  #--------------------------------------------------------------------------
  # ○ スプラッシュ更新
  #--------------------------------------------------------------------------
  def update_splash
    opacity = 384 * @@_sp_transition_duration / @@_sp_transition_duration_max

    # セルを移動
    @@_sp_transition_sprites.each_with_index { |sprite, i|
      sprite.x += @@_splash_dir[i][0]
      sprite.y += @@_splash_dir[i][1]
      sprite.angle += @@_splash_angle[i]
      sprite.opacity = opacity
    }
  end
  #--------------------------------------------------------------------------
  # ○ ランダムストライプ更新
  #--------------------------------------------------------------------------
  def update_rand_stripe
    dir = @@_rand_stripe_direction
    size = KGC::SpecialTransition::RAND_STRIPE_SIZE
    bands = (dir == 0 ? Graphics.width : Graphics.height) / size
    rect = Rect.new(0, 0,
      (dir == 0 ? size : Graphics.width), (dir == 0 ? Graphics.height : size))
    buffer = @@_sp_transition_buffer
    sprite = @@_sp_transition_sprites[0]
    phase = @@_sp_transition_duration_max - @@_sp_transition_duration

    # 消去箇所を設定
    count = (bands - bands * @@_sp_transition_duration /
      @@_sp_transition_duration_max) - @@_rand_stripe_deleted_count
    while count > 0
      @@_rand_stripe_deleted[@@_rand_stripe_index_array.pop] = true
      @@_rand_stripe_deleted_count += 1
      count -= 1
    end

    # 未消去部分のみ描画
    sprite.bitmap.clear
    bands.times { |i|
      unless @@_rand_stripe_deleted[i]
        if dir == 0
          # 縦
          rect.x = i * size
          sprite.bitmap.blt(rect.x, 0, buffer, rect)
        else
          # 横
          rect.y = i * size
          sprite.bitmap.blt(0, rect.y, buffer, rect)
        end
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 特殊トランジション終了
  #--------------------------------------------------------------------------
  def finish_special_transition
    if @@_sp_transition_buffer != nil
      @@_sp_transition_buffer.dispose
      @@_sp_transition_buffer = nil
    end

    case @@_sp_transition_type
    when KGC::SpecialTransition::Type::SPLASH
      @@_splash_dir = nil
      @@_splash_angle = nil
    when KGC::SpecialTransition::Type::RAND_STRIPE
      @@_rand_stripe_direction = nil
      @@_rand_stripe_deleted = nil
      @@_rand_stripe_deleted_count = nil
      @@_rand_stripe_index_array = nil
    end
    @@_sp_transition_type = KGC::SpecialTransition::Type::NONE

    @@_sp_transition_sprites.each { |sprite|
      sprite.bitmap.dispose
      sprite.dispose
    }
    @@_sp_transition_sprites = []
    @@_sp_transition_duration_max = -1
    @@_sp_transition_duration = -1
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_System
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_writer  :battle_transition_type      # 戦闘トランジション : 形式
  attr_writer  :battle_transition_duration  # 戦闘トランジション : 時間
  attr_writer  :battle_transition_direction  # 戦闘トランジション : 方向
  #--------------------------------------------------------------------------
  # ○ 戦闘トランジション : 形式
  #--------------------------------------------------------------------------
  def battle_transition_type
    if @battle_transition_type == nil
      return KGC::SpecialTransition::DEFAULT_BATTLE_TRANSITION_TYPE
    else
      return @battle_transition_type
    end
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘トランジション : 時間
  #--------------------------------------------------------------------------
  def battle_transition_duration
    if @battle_transition_duration == nil
      return KGC::SpecialTransition::DEFAULT_BATTLE_TRANSITION_DURATION
    else
      return @battle_transition_duration
    end
  end
  #--------------------------------------------------------------------------
  # ○ 戦闘トランジション : 方向
  #--------------------------------------------------------------------------
  def battle_transition_direction
    if @battle_transition_direction == nil
      return KGC::SpecialTransition::DEFAULT_BATTLE_TRANSITION_DIRECTION
    else
      return @battle_transition_direction
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ● バトル画面への切り替え
  #--------------------------------------------------------------------------
  alias call_battle_KGC_SpecialTransition call_battle
  def call_battle
    call_battle_KGC_SpecialTransition

    KGC::Commands.set_special_transition(
      $game_system.battle_transition_type,
      $game_system.battle_transition_duration,
      $game_system.battle_transition_direction)
  end
end

Demo:
No es nesesario.

Créditos:
Autor: Mr. Anonymous
Raven_EXs
Raven_EXs
BANEADO
BANEADO

Masculino

Edad 40

Cantidad de envíos 227

Maker Cash 168

Reputación 12


Volver arriba Ir abajo

KGC: Special Transitions Empty Re: KGC: Special Transitions

Mensaje por ClubIce Sáb 02 Oct 2010, 9:55 am

* Este Script cumple con [Tienes que estar registrado y conectado para ver este vínculo].
* Este Script Funciona al 100%
ClubIce
ClubIce
220
220

Masculino

Edad 27

Cantidad de envíos 253

Maker Cash 361

Reputación 38


Volver arriba Ir abajo

Volver arriba

- Temas similares

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