Sistema de Pause com "Parar BGMs e BGSs, e com a tecla PAUSE/BREAK do teclado"

    Compartilhe
    avatar
    jiraya
    Administrador
    Administrador

    Mensagens : 1299
    Credibilidade : 54

    Sistema de Pause com "Parar BGMs e BGSs, e com a tecla PAUSE/BREAK do teclado"

    Mensagem por jiraya em Sab Jan 15, 2011 1:32 pm

    [autor: jonathan_25 ]
    Sistema de Pause
    Aqui estou eu para disponibilizar!!!
    (Eu acho que o 1º script que eu crio)

    [Introdução]
    Um sistema simples de PAUSE, com a tecla "PAUSE/BREAK" do teclado e com parada e recomeço na reprodução do BGM e BGS do mapa.
    Imagem:

    Como se vê ela escureçe a tela e para tudo.
    [Script]
    Código:
    #=========================================================
    #jonathan_25 Pause Script - Criado por jonathan_25
    #O jogo pausa e cobre a tela com sua windowskin
    #(Para ficar mais escura a tela), e Pára os sons
    #BGM e BGS, e recomeçam ao despausar. PS: Se forem
    #BGMs ou BGSs, que não estejam na configuração do Mapa, não
    #serão "re"produzidos depois que despausar. e ainda você pode
    #pausar o jogo com a tecla "PAUSE/BREAK" do teclado.
    #=========================================================
    class Window_paused < Window_Base
    def initialize
    super (-4, -4, 648, 488)
    self.opacity = 255
    self.back_opacity = 160
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    end

    def refresh
    self.contents.clear
    self.contents.draw_text(0, -8, self.width - 40, 32, "Paused")
    end
    end
    #Aqui é adicionado a tecla "PAUSE/BREAK" ao script
    module Input
    $R_Key_PAUSE = 0x13 # PAUSE
    GetKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
    module_function
    def keyboard(rkey)
    GetKeyState.call(rkey) & 0x01 == 1
    end
    end
    class Scene_Pause
    def main
    Audio.me_stop
    Audio.bgs_stop
    Audio.bgm_stop
    Audio.se_stop
    @spriteset = Spriteset_Map.new
    @playtime_window = Window_paused.new
    Graphics.transition
    loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
    end
    Graphics.freeze
    @playtime_window.dispose
    @spriteset.dispose
    end
    def update
    if Input::keyboard(0x13)
    $scene = Scene_Map.new
    end
    @playtime_window.update
    @spriteset.update
    end
    end
    class Scene_Map
    alias pause_update update
    def update
    $game_map.update
    $game_map.autoplay
    pause_update
    if Input.keyboard(0x13)# tecla PAUSE/BREAK do teclado
    $scene = Scene_Pause.new
    end
    end
    end
    [/box]
    Acho que não precisa de Demo já que tem uma "Imagem de exemplo" do script.
    Eu testei e não encontrei nenhum BUG, qualquer reclamação, responda no Tópico.

      Data/hora atual: Seg Jan 21, 2019 6:21 pm