RMB - Vivenciando as mudanças da vida. Vá agora para a nova RMB! rpgmakerbrasil.net!


    KGC Cursor Animado[Vx]

    Compartilhe
    avatar
    Gforce
    Novato
    Novato

    Mensagens : 8
    Experiência : 2742
    Reputação : 14

    KGC Cursor Animado[Vx]

    Mensagem por Gforce em Dom Jun 27, 2010 10:08 am

    Descrição: Esse script permite que apareça um cursor animado em movimento, nas escolhas como : Novo jogo, menu etc...

    Funciona Online: Não testado

    Incompativel com algum script conhecido: Não

    Instruções: Basta inserir o código acima do MAIN e deixa a Picture dentro da pasta System com o nome
    cursoranimatio


    Uploaded with ImageShack.us
    Spoiler:

    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    #_/ KGC_CursorAnimation VX
    #_/ Last update : 2008/04/01
    #_/----------------------------------------------------------------------------
    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

    #==============================================================================
    # Customize
    #==============================================================================

    module KGC
    module CursorAnimation
    # Animação ON / OFF por switch
    # Escolha a ID do switch que ativa e desativa a animação do cursor
    SWITCH_ID = 20 # Switch 20 ativa / desativa a animação
    # Animação ativada / desativada na tela inicial
    # true: Ativa a animação na tela inicial
    # false : Não ativa a animação na tela inicial
    DEFAULT_ANIMATION = true

    # Nome do arquivo da animação
    # Por na pasta "Graphics/System"
    ANIMATION_FILE = "Cursoranimatio"
    # Número de frames
    FRAME_COUNT = 12
    ANIMATION_WAIT = 4

    # Opacidade
    OPACITY = 224
    BLEND_TYPE = 1
    BASE_POSITION = 1
    POSITION_REV = [-4, 0]
    end
    end

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

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

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

    #==============================================================================
    # ■ Window_Base
    #==============================================================================

    class Window_Base < Window
    #--------------------------------------------------------------------------
    # ○ クラス変数
    #--------------------------------------------------------------------------
    @@__cursor_animation = nil # カーソルアニメ
    #--------------------------------------------------------------------------
    # ● オブジェクト初期化
    # x : ウィンドウの X 座標
    # y : ウィンドウの Y 座標
    # width : ウィンドウの幅
    # height : ウィンドウの高さ
    #--------------------------------------------------------------------------
    alias initialize_KGC_CursorAnimation initialize
    def initialize(x, y, width, height)
    initialize_KGC_CursorAnimation(x, y, width, height)

    @@__cursor_animation.add_window(self)
    end
    #--------------------------------------------------------------------------
    # ● 解放
    #--------------------------------------------------------------------------
    alias dispose_KGC_CursorAnimation dispose unless $@
    def dispose
    @@__cursor_animation.remove_window(self)

    dispose_KGC_CursorAnimation
    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

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

    #==============================================================================
    # □ Sprite_CursorAnimation
    #------------------------------------------------------------------------------
    #  カーソルアニメーション用の処理を追加したスプライトのクラスです。
    #==============================================================================

    class Sprite_CursorAnimation < Sprite
    #--------------------------------------------------------------------------
    # ● オブジェクト初期化
    # viewport : ビューポート
    #--------------------------------------------------------------------------
    def initialize(viewport = nil)
    super(viewport)
    @duration = 0
    @frame_count = 0
    self.bitmap = Cache.system(KGC::CursorAnimation::ANIMATION_FILE)
    self.src_rect.width = bitmap.width / 8
    self.src_rect.height = bitmap.height /
    ([KGC::CursorAnimation::FRAME_COUNT - 1, 0].max / 8 + 1)
    self.ox = src_rect.width / 2
    self.oy = src_rect.height / 2
    self.opacity = KGC::CursorAnimation::OPACITY
    self.blend_type = KGC::CursorAnimation::BLEND_TYPE
    end
    #--------------------------------------------------------------------------
    # ● フレーム更新
    #--------------------------------------------------------------------------
    def update
    super
    return unless visible

    @frame_count += 1
    return if @frame_count % KGC::CursorAnimation::ANIMATION_WAIT != 0

    @frame_count = 0
    @duration -= 1
    if @duration < 0
    @duration = KGC::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
    @visible = false

    @viewport = Viewport.new(0, 0, 640, 480)
    @windows = []
    @target_sprite = Sprite_CursorAnimation.new(@viewport)
    @active_window = nil

    @viewport.visible = false
    @viewport.z = 10000
    end
    #--------------------------------------------------------------------------
    # ○ 破棄
    #--------------------------------------------------------------------------
    def dispose
    @target_sprite.dispose
    @viewport.dispose
    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
    @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 = 0
    dy = 0
    # アクティブウィンドウを取得
    unless window_active?(@active_window)
    @active_window = search_active_window
    end

    # アクティブウィンドウがなければ非表示
    if @active_window == nil || !$game_switches[KGC::CursorAnimation::SWITCH_ID]
    @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 + KGC::CursorAnimation::POSITION_REV[0]
    dy = rect.y + 16 + KGC::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
    dy += @active_window.y
    case KGC::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?

    if window.is_a?(Window_Selectable)
    return true if window.active
    elsif window.is_a?(Window_SaveFile)
    return true if 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_KGC_CursorAnimation start
    def start
    Window_Base.show_cursor_animation

    start_KGC_CursorAnimation
    end
    #--------------------------------------------------------------------------
    # ● 終了前処理
    #--------------------------------------------------------------------------
    alias pre_terminate_KGC_CursorAnimation pre_terminate
    def pre_terminate
    Window_Base.hide_cursor_animation

    pre_terminate_KGC_CursorAnimation
    end
    #--------------------------------------------------------------------------
    # ● フレーム更新
    #--------------------------------------------------------------------------
    alias update_KGC_CursorAnimation update
    def update
    update_KGC_CursorAnimation

    Window_Base.update_cursor_animation
    end
    end

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

    #==============================================================================
    # ■ Scene_Title
    #==============================================================================

    if KGC::CursorAnimation::DEFAULT_ANIMATION

    class Scene_Title < Scene_Base
    #--------------------------------------------------------------------------
    # ● 各種ゲームオブジェクトの作成
    #--------------------------------------------------------------------------
    alias create_game_objects_KGC_CursorAnimation create_game_objects
    def create_game_objects
    create_game_objects_KGC_CursorAnimation

    $game_switches[KGC::CursorAnimation::SWITCH_ID] = true
    end
    end

    end # <-- if KGC::CursorAnimation::DEFAULT_ANIMATION


    class Window_Base < Window
    @@__cursor_animation = Cursor_Animation.new
    end



    Criado por KGC.
    avatar
    Alucard_2
    Administrador
    Administrador

    Masculino Mensagens : 820
    Experiência : 3737
    Reputação : 57
    - : Melhor Tutorial - Oscar 2010

    Re: KGC Cursor Animado[Vx]

    Mensagem por Alucard_2 em Dom Jun 27, 2010 4:16 pm

    Conheço este script, é muito útil até^^ +Rep por disponibilizar.


    _________________________________________________
    O que estou fazendo agora:
    Avaliando Concursos
    Vamos ajudar a nova RMB a crescer!

    avatar
    Gforce
    Novato
    Novato

    Mensagens : 8
    Experiência : 2742
    Reputação : 14

    Re: KGC Cursor Animado[Vx]

    Mensagem por Gforce em Dom Jun 27, 2010 7:04 pm

    vlw, sempre estarei postando novos sistemas, para ajudar a nova rmbr ^^
    avatar
    wagnercgil
    Colaborador
    Colaborador

    Masculino Mensagens : 203
    Experiência : 2999
    Reputação : 24

    Re: KGC Cursor Animado[Vx]

    Mensagem por wagnercgil em Qua Jun 30, 2010 5:28 pm

    gostei pena q n vai da pra usa mesm assim +rep!
    avatar
    Jason_Hk2wer
    Novato
    Novato

    Masculino Mensagens : 3
    Experiência : 2737
    Reputação : 10

    Re: KGC Cursor Animado[Vx]

    Mensagem por Jason_Hk2wer em Ter Ago 31, 2010 5:14 pm

    Vlw mesmo, ficou otimo mesmo. +REP Poring :)
    avatar
    Naxus
    Moderador
    Moderador

    Masculino Mensagens : 500
    Experiência : 3313
    Reputação : 68

    Re: KGC Cursor Animado[Vx]

    Mensagem por Naxus em Ter Ago 31, 2010 6:50 pm

    Eu não conhecia esse sistema, deve deixar o jogo muito bonito!
    Obrigado por disponibilizar!

    Conteúdo patrocinado

    Re: KGC Cursor Animado[Vx]

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg Dez 11, 2017 2:50 pm