标题: VA中指针错位如何解决? [打印本页] 作者: linkvx 时间: 2014-3-30 15:31 标题: VA中指针错位如何解决? 使用以下脚本
#==============================================================================
# +++ MOG - Animated Cursor (V1.2) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Adiciona um cursor animado nos menus de comandos.
#==============================================================================
# Será necessário ter a imagem
#
# Menu_Cursor.png
#
# gravado na pasta GRAPHICS/SYSTEM/
#==============================================================================
# Ativando a animação do cursor
#
# Basta criar uma imagem que tenha a largura com no minimo o dobro de altura da
# imagem do cursor.
#
# EX
# largura 32 pixel (width) altura 32 pixel = 1 frames de animação.(Sem animação)
# largura 64 pixel (width) altura 32 pixel = 2 frames de animação.
# largura 128 pixel (width) altura 32 pixel = 4 frames de animação.
# largura 256 pixel (width) altura 32 pixel = 8 frames de animação
# Etc...
#
# NOTA
# Não há limite para quantidade de frames de animação, se não quiser a animação
# basta criar uma imagem com a altura proporcional a largura da imagem.
#
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.1 - Correção da posição do cursor na cena de batalha.
#==============================================================================
module MOG_MENU_CURSOR
#Ativar animação do cursor se movimentando para os lados.
SIDE_ANIMATION = true
#Definição da posição do cursor. (Ajustes na posição)
CURSOR_POSITION = [0,0]
#Definição da velocidade da animação de frames.
CURSOR_ANIMATION_SPEED = 6
end
#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
attr_accessor :menu_cursor_name
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_menu_cursor_initialize initialize
def initialize
mog_menu_cursor_initialize
@menu_cursor_name = "Menu_Cursor"
end
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
attr_accessor :menu_cursor
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_cursor_sprite_initialize initialize
def initialize
mog_cursor_sprite_initialize
@menu_cursor = [false,0,0,0]
end
end
#==============================================================================
# ■ Sprite Cursor
#==============================================================================
class Sprite_Cursor < Sprite
#--------------------------------------------------------------------------
# ● Update Cursor Position
#--------------------------------------------------------------------------
def update_cusor_position
return if !can_update_cursor_position?
x_v = [0,0]
if SceneManager.scene_is?(Scene_Battle)
if self.viewport != nil
x_v = [-self.viewport.ox, self.viewport.rect.y]
end
end
x_e = (self.cursor_rect.x + self.x) - self.ox
$game_temp.menu_cursor[2] = x_e + x_v[0]
y_e = (self.cursor_rect.y + self.y + self.cursor_rect.height / 2) - self.oy
$game_temp.menu_cursor[3] = y_e + x_v[1]
$game_temp.menu_cursor[1] = 13
end
#--------------------------------------------------------------------------
# ● Can Update Cursor
#--------------------------------------------------------------------------
def can_update_cursor_position?
return false if !self.active
return false if self.index < 0
return false if !self.visible
return true
end
end
#==============================================================================
# ■ Window Base
#==============================================================================
class Window_Base < Window
include CURSOR_MENU_SPRITE
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
alias mog_menu_cursor_base_dispose dispose
def dispose
mog_menu_cursor_base_dispose
dispose_cursor_sprite
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
alias mog_cursor_update update
def update
mog_cursor_update
cursor_sprite_enable
end