HUNTERSáb Jun 23, 2012 10:40 pm
Super Usuario
CREDITOS:Kamesoft
LINK OFICIAL:http://ytomy.sakura.ne.jp/tkool/rpgtech/php/tech.php?tool=VXAce&cat=tech_vxace/menu&tech=cursor_animation
INFO:
Muestra Animacion en las Windox Skin.
Captura de Pantalla:
SCRIPT:
ANIMACION:
Lee el "Graphics / System" de la imagen.
Las imágenes animadas, por favor, utilice la tecla ↓ (productos elaborados de RTP). Por supuesto, usted puede poseer. La configuración recomendada si se utiliza esta imagen,
Especificación de las imágenes animadas
No hay límite al tamaño de la imagen.
El tamaño de cada fotograma (un fotograma de la animación), puede cambiar el tamaño de la imagen y el número de fotogramas.
La anchura del marco / 8 (el tamaño horizontal de la imagen) será.
Este es el número del cuadro 7 de los siguientes es cierto incluso si.
En el sentido transversal, por favor, asegúrese de tomar el ancho del marco de 8 minutos.
La altura del bastidor, se puede cambiar, dependiendo del número de cuadros.
Si el número de cuadros 8 los casos siguientes (el tamaño vertical de la imagen) como lo es,
el número de cuadros 9-16 es el caso de / 2 (tamaño vertical) ,
el número de tramas 17-24 es el caso de / 3 (tamaño vertical) ,
y así es.
Número se dará al número de fotograma de la imagen.
En este ejemplo, el número de bastidor 12 muestra el caso.
Configuración:
Por favor, ajuste la multa en función de la imagen que desea utilizar.
De comandos del evento:
Para mostrar / ocultar la animación, por favor, ejecute el comando siguiente en el símbolo del evento "guión".
Un Saludo.
LINK OFICIAL:http://ytomy.sakura.ne.jp/tkool/rpgtech/php/tech.php?tool=VXAce&cat=tech_vxace/menu&tech=cursor_animation
INFO:
Muestra Animacion en las Windox Skin.
Captura de Pantalla:
SCRIPT:
- Código:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆ カーソルアニメーション - KMS_CursorAnimation ◆ VX Ace ◆
#_/ ◇ Last update : 2012/02/19 (TOMY@Kamesoft) ◇
#_/----------------------------------------------------------------------------
#_/ カーソルの位置にアニメーションを表示します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ 設定項目 - BEGIN Setting ★
#==============================================================================
module KMS_CursorAnimation
# ◆ 最初からカーソルアニメを表示する
# true : タイトルなどでもアニメを表示する。
# false : ゲーム中に明示的にオンするまで表示しない。
DEFAULT_ANIMATION = true
# ◆ アニメファイル名
# "Graphics/System" から読み込む。
ANIMATION_FILE = "CursorAnimation"
# ◆ アニメーションのフレーム数
FRAME_COUNT = 12
# ◆ アニメーションウェイト
# 数値が大きいほどアニメが遅くなる。
ANIMATION_WAIT = 4
# ◆ 不透明度
OPACITY = 224
# ◆ 合成方法
# 0..通常 1..加算 2..減算
BLEND_TYPE = 1
# ◆ 基準位置
# 0..上 1..中央 2..下
BASE_POSITION = 1
# ◆ 表示位置補正 [x, y]
POSITION_REV = [-4, 0]
end
#==============================================================================
# ☆ 設定ここまで - END Setting ☆
#==============================================================================
$kms_imported = {} if $kms_imported == nil
$kms_imported["CursorAnimation"] = true
# *****************************************************************************
#==============================================================================
# □ KMS_Commands
#==============================================================================
module KMS_Commands
module_function
#--------------------------------------------------------------------------
# ○ カーソルアニメを表示
#--------------------------------------------------------------------------
def show_cursor_animation
$game_system.cursor_animation_visible = true
end
#--------------------------------------------------------------------------
# ○ カーソルアニメを非表示
#--------------------------------------------------------------------------
def hide_cursor_animation
$game_system.cursor_animation_visible = false
end
#--------------------------------------------------------------------------
# ○ カーソルアニメ表示状態の取得
#--------------------------------------------------------------------------
def cursor_animation_visible?
return $game_system.cursor_animation_visible
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
# イベントコマンドから直接コマンドを叩けるようにする
include KMS_Commands
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ○ クラス変数
#--------------------------------------------------------------------------
@@__cursor_animation = nil # カーソルアニメ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# x : ウィンドウの X 座標
# y : ウィンドウの Y 座標
# width : ウィンドウの幅
# height : ウィンドウの高さ
#--------------------------------------------------------------------------
alias initialize_KMS_CursorAnimation initialize
def initialize(x, y, width, height)
initialize_KMS_CursorAnimation(x, y, width, height)
@@__cursor_animation.add_window(self)
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
unless method_defined?(:dispose_KMS_CursorAnimation)
alias dispose_KMS_CursorAnimation dispose
end
def dispose
@@__cursor_animation.remove_window(self)
dispose_KMS_CursorAnimation
end
#--------------------------------------------------------------------------
# ○ カーソルアニメを生成
#--------------------------------------------------------------------------
def self.create_cursor_animation
@@__cursor_animation = Cursor_Animation.new
end
#--------------------------------------------------------------------------
# ○ カーソルアニメを破棄
#--------------------------------------------------------------------------
def self.dispose_cursor_animation
@@__cursor_animation.dispose
end
#--------------------------------------------------------------------------
# ○ カーソルアニメを表示
#--------------------------------------------------------------------------
def self.show_cursor_animation
@@__cursor_animation.visible = true
@@__cursor_animation.update
end
#--------------------------------------------------------------------------
# ○ カーソルアニメを隠す
#--------------------------------------------------------------------------
def self.hide_cursor_animation
@@__cursor_animation.visible = false
@@__cursor_animation.update
end
#--------------------------------------------------------------------------
# ○ カーソルアニメを更新
#--------------------------------------------------------------------------
def self.update_cursor_animation
@@__cursor_animation.update
end
end
#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_writer :cursor_animation_visible
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KMS_CursorAnimation initialize
def initialize
initialize_KMS_CursorAnimation
@cursor_animation_visible = KMS_CursorAnimation::DEFAULT_ANIMATION
end
#--------------------------------------------------------------------------
# ○ カーソルアニメ可否フラグを取得
#--------------------------------------------------------------------------
def cursor_animation_visible
if @cursor_animation_visible.nil?
@cursor_animation_visible = KMS_CursorAnimatin::DEFAULT_ANIMATION
end
return @cursor_animation_visible
end
end
#==============================================================================
# □ Sprite_CursorAnimation
#------------------------------------------------------------------------------
# カーソルアニメーション用の処理を追加したスプライトのクラスです。
#==============================================================================
class Sprite_CursorAnimation < Sprite
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# viewport : ビューポート
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
@duration = 0
@frame_count = 0
self.bitmap = Cache.system(KMS_CursorAnimation::ANIMATION_FILE)
self.src_rect.width = bitmap.width / 8
self.src_rect.height = bitmap.height /
([KMS_CursorAnimation::FRAME_COUNT - 1, 0].max / 8 + 1)
self.ox = src_rect.width / 2
self.oy = src_rect.height / 2
self.opacity = KMS_CursorAnimation::OPACITY
self.blend_type = KMS_CursorAnimation::BLEND_TYPE
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
super
return unless visible
@frame_count += 1
return if @frame_count % KMS_CursorAnimation::ANIMATION_WAIT != 0
@frame_count = 0
@duration -= 1
if @duration < 0
@duration = KMS_CursorAnimation::FRAME_COUNT - 1
end
update_animation
end
#--------------------------------------------------------------------------
# ○ アニメーションを更新
#--------------------------------------------------------------------------
def update_animation
self.src_rect.x = src_rect.width * (@duration % 8)
self.src_rect.y = src_rect.height * (@duration / 8)
end
end
#==============================================================================
# □ Cursor_Animation
#------------------------------------------------------------------------------
# カーソル周りのアニメーションを扱うクラスです。
#==============================================================================
class Cursor_Animation
#--------------------------------------------------------------------------
# ○ 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :visible
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
reset
end
#--------------------------------------------------------------------------
# ○ 破棄
#--------------------------------------------------------------------------
def dispose
@target_sprite.dispose
@target_sprite = nil
@viewport.dispose
@viewport = nil
end
#--------------------------------------------------------------------------
# ○ リセット
#--------------------------------------------------------------------------
def reset
@visible = false
@viewport = Viewport.new(0, 0, 640, 480)
@windows = []
@target_sprite = Sprite_CursorAnimation.new(@viewport)
@active_window = nil
@viewport.visible = false
@viewport.z = 30000
end
#--------------------------------------------------------------------------
# ○ ウィンドウ追加
#--------------------------------------------------------------------------
def add_window(*window)
@windows |= window.find_all { |w|
w.is_a?(Window_Selectable) || w.is_a?(Window_SaveFile)
}
@windows.flatten!
end
#--------------------------------------------------------------------------
# ○ ウィンドウ削除
#--------------------------------------------------------------------------
def remove_window(*window)
@windows -= window
end
#--------------------------------------------------------------------------
# ○ フレーム更新
#--------------------------------------------------------------------------
def update
return if @viewport.nil?
@viewport.update
@target_sprite.update
# 座標調整
dest_x, dest_y = get_cursor_pos
if @target_sprite.x != dest_x
if (dest_x - @target_sprite.x).abs < 4
@target_sprite.x = dest_x
else
dist = (dest_x - @target_sprite.x) / 4
dist = (dist > 0 ? [dist, 4].max : [dist, -4].min)
@target_sprite.x += dist
end
end
if @target_sprite.y != dest_y
if (dest_y - @target_sprite.y).abs < 4
@target_sprite.y = dest_y
else
dist = (dest_y - @target_sprite.y) / 4
dist = (dist > 0 ? [dist, 4].max : [dist, -4].min)
@target_sprite.y += dist
end
end
end
#--------------------------------------------------------------------------
# ○ カーソル位置取得
# [x, y] の形で返す。
#--------------------------------------------------------------------------
def get_cursor_pos
dx = dy = 0
# 可視状態のアクティブウィンドウを取得
unless window_active?(@active_window)
@active_window = search_active_window
end
# アクティブウィンドウがなければ非表示
if @active_window.nil? || !KMS_Commands.cursor_animation_visible?
@viewport.visible = false
dx = Graphics.width / 2
dy = Graphics.height / 2
return [dx, dy]
end
@viewport.visible = @visible
# カーソル位置を計算
rect = @active_window.cursor_rect
dx = rect.x + 16 + KMS_CursorAnimation::POSITION_REV[0]
dy = rect.y + 16 + KMS_CursorAnimation::POSITION_REV[1]
vp = @active_window.viewport
if vp != nil
dx += vp.rect.x - vp.ox
dy += vp.rect.y - vp.oy
end
dx += @active_window.x - @active_window.ox
dy += @active_window.y - @active_window.oy
case KMS_CursorAnimation::BASE_POSITION
when 0 # 上
dy += @target_sprite.oy
when 1 # 中央
dy += rect.height / 2
when 2 # 下
dy += rect.height - @target_sprite.oy
end
return [dx, dy]
end
#--------------------------------------------------------------------------
# ○ ウィンドウの可視・アクティブ状態判定
#--------------------------------------------------------------------------
def window_active?(window)
return false if window.nil?
return false if window.disposed?
return false unless window.visible
if window.is_a?(Window_Selectable)
return window.active
elsif window.is_a?(Window_SaveFile)
return window.selected
end
return false
end
#--------------------------------------------------------------------------
# ○ アクティブウィンドウを探す
#--------------------------------------------------------------------------
def search_active_window
return @windows.find { |w|
if !w.visible
false
elsif w.is_a?(Window_Selectable)
w.active && w.index >= 0
elsif w.is_a?(Window_SaveFile)
w.selected
else
false
end
}
end
end
#==============================================================================
# ■ Scene_Base
#==============================================================================
class Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias start_KMS_CursorAnimation start
def start
Window_Base.create_cursor_animation
Window_Base.show_cursor_animation
start_KMS_CursorAnimation
end
#--------------------------------------------------------------------------
# ● 終了前処理
#--------------------------------------------------------------------------
alias pre_terminate_KMS_CursorAnimation pre_terminate
def pre_terminate
Window_Base.dispose_cursor_animation
pre_terminate_KMS_CursorAnimation
end
#--------------------------------------------------------------------------
# ● フレーム更新(基本)
#--------------------------------------------------------------------------
alias update_basic_KMS_CursorAnimation update_basic
def update_basic
update_basic_KMS_CursorAnimation
# カーソルアニメを更新
Window_Base.update_cursor_animation
end
end
ANIMACION:
- Código:
# Anime de ◆ nombre de archivo
ANIMATION_FILE = "CursorAnimation"
Lee el "Graphics / System" de la imagen.
- Código:
# ◆ número de fotogramas de la animación
FRAME_COUNT = 12
- Código:
# ◆ animación de peso
ANIMATION_WAIT = 4
Las imágenes animadas, por favor, utilice la tecla ↓ (productos elaborados de RTP). Por supuesto, usted puede poseer. La configuración recomendada si se utiliza esta imagen,
- Código:
FRAME_COUNT = 12
= 4 # ANIMATION_WAIT aquí es de acuerdo al gusto
Especificación de las imágenes animadas
No hay límite al tamaño de la imagen.
El tamaño de cada fotograma (un fotograma de la animación), puede cambiar el tamaño de la imagen y el número de fotogramas.
La anchura del marco / 8 (el tamaño horizontal de la imagen) será.
Este es el número del cuadro 7 de los siguientes es cierto incluso si.
En el sentido transversal, por favor, asegúrese de tomar el ancho del marco de 8 minutos.
La altura del bastidor, se puede cambiar, dependiendo del número de cuadros.
Si el número de cuadros 8 los casos siguientes (el tamaño vertical de la imagen) como lo es,
el número de cuadros 9-16 es el caso de / 2 (tamaño vertical) ,
el número de tramas 17-24 es el caso de / 3 (tamaño vertical) ,
y así es.
Número se dará al número de fotograma de la imagen.
En este ejemplo, el número de bastidor 12 muestra el caso.
Configuración:
- Código:
# ◆ opacidad
Opacidad = 224
# método de síntesis ◆
BLEND_TYPE = 1
- Código:
# Referencia ◆ posición
BASE_POSITION = 1
# visualización de la posición de corrección ◆ [x, y]
POSITION_REV = [-4, 0]
Por favor, ajuste la multa en función de la imagen que desea utilizar.
De comandos del evento:
Para mostrar / ocultar la animación, por favor, ejecute el comando siguiente en el símbolo del evento "guión".
- Código:
Mostrando del anime
show_cursor_animation
piel de anime #
hide_cursor_animation
- Código:
si cursor_animation_visible?
si desea ocultar # Anime Mostrando
Hide_cursor_animation
otra
demostración # anime si oculta
Show_cursor_animation
Fin
Un Saludo.