Últimos temas
» Script de menupor 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
El record de usuarios en línea fue de 117 durante el Mar 09 Ago 2011, 3:39 pm
KGC: Special Transitions
2 participantes
RPG maker VX :: Scripts ::
Página 1 de 1.
KGC: Special Transitions
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- BANEADO
-
40
227
168
12
Re: KGC: Special Transitions
* Este Script cumple con [Tienes que estar registrado y conectado para ver este vínculo].
* Este Script Funciona al 100%
* Este Script Funciona al 100%
ClubIce- 220
-
27
253
361
38
RPG maker VX :: Scripts ::
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.