O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

ZK - Title Screen com logo

Iniciado por Zhankou, 17/05/2015 às 03:12

17/05/2015 às 03:12 Última edição: 20/01/2017 às 09:22 por King Gerar
   
ZK - Title Screen com logo

   
Compativel com: RMVXA
    Compatibilidade: boa
    Facilidade de uso: fácil
    Lag gerado:desprezível rodou no meu pc da peppa


    [box class=titlebg]
Para que serve o script
[/box]
   
Esse script altera a title screen permitindo que seja customizada por imagens. Também adiciona uma logo que aparece antes da title e uma música que toca durante a mesma. Tudo pode ser configurado pelo script. Este é meu primeiro script então se souberem como melhora-lo só comentar  :ok: .

    [box class=titlebg]
Imagens
[/box]
   

    [box class=titlebg]
Download e Script
[/box]
Spoiler
# ZK -  Title Screen
# Me siga no twitter: @Zhankou
#######################################################
# Configuração
module ZK_US_Config
    #Todas as imagens abaixo devem estar na pasta: Graphics/Titles1
    Logo_Active       = true                         # Ativa ou desativa a logo
    Logo_Image        = "Logo"                       # Nome do imagem da logo
    Logo_Timer        = [60, 60]                     # Tempo de fade in e fade out da logo respectivamente
    Logo_S_Time       = (60)                         # Tempo que a logo fica sendo exibida antes do fade out
    Audio_Pasta       =  # Linha 103                 # Local onde fica o audio que toca durante a logo
    Audio_Nome        =  # Linha 103                 # Nome do arquivo de audio
    Background        = "BG_1"                       # Nome do arquivo da imagem de fundo
    Name_Title        = "Name"                       # Nome do arquivo da imagem com o nome do jogo
    NGame_Images      = ["NG","NG_SLTD"]             # Nome dos arquivos das imagens do botão "Novo Jogo"
    Continue_Images   = ["Continue","Continue_SLTD"] # Nome dos arquivos das imagens do botão "Continuar"
    Exit_Images       = ["Exit","Exit_SLTD"]         # Nome dos arquivos das imagens do botão "Sair"
    Name_Position     = [50, 5]                      # Posição da imagem com o nome do jogo
    NGame_Position    = [50, 280]                    # Posição do botão "Novo Jogo"
    Continue_Position = [50, 320]                    # Posição do botão "Continuar"
    Exit_Position     = [50, 360]                    # Posição do botão "Sair"
end
# Fim das configurações
########################################################
class Scene_Title < Scene_Base
    def start
        super
        @background                  = Sprite.new
        @ngame_button                = Sprite.new
        @ngame_button_slt            = Sprite.new
        @continue_button             = Sprite.new
        @continue_button_slt         = Sprite.new
        @exit_button                 = Sprite.new
        @exit_button_slt             = Sprite.new
        @title                       = Sprite.new
        @ngame_button.bitmap         = Cache.title1(ZK_US_Config::NGame_Images[0])
        @ngame_button_slt.bitmap     = Cache.title1(ZK_US_Config::NGame_Images[1])
        @exit_button.bitmap          = Cache.title1(ZK_US_Config::Exit_Images[0])
        @exit_button_slt.bitmap      = Cache.title1(ZK_US_Config::Exit_Images[1])
        @continue_button.bitmap      = Cache.title1(ZK_US_Config::Continue_Images[0])
        @continue_button_slt.bitmap  = Cache.title1(ZK_US_Config::Continue_Images[1])
        @ngame_button.opacity        = 0
        @ngame_button_slt.opacity    = 0
        @continue_button.opacity     = 0
        @continue_button_slt.opacity = 0
        @exit_button.opacity         = 0
        @exit_button_slt.opacity     = 0
        @title.opacity               = 0
        @background.opacity          = 0
        @index                       = 0
        create_images
        play_title_music
    end
    def update
        super
        if Input.trigger?(:DOWN) and @index < 2
            @index += 1
        elsif Input.trigger?(:UP) and @index > 0
            @index -= 1
        elsif Input.trigger?(:C)
            case @index
            when 0
                command_new_game
            when 1
                if DataManager.save_file_exists?
                    command_continue
                else
                    Sound.play_buzzer
                end
            when 2
                command_shutdown
            end
        end
        case @index
        when 0
            @ngame_button.opacity        = 0
            @ngame_button_slt.opacity    = 255
            @continue_button.opacity     = 255
            @continue_button_slt.opacity = 0
            @exit_button.opacity         = 255
            @exit_button_slt.opacity     = 0
        when 1
            @ngame_button.opacity        = 255
            @ngame_button_slt.opacity    = 0
            @continue_button.opacity     = 0
            @continue_button_slt.opacity = 255
            @exit_button.opacity         = 255
            @exit_button_slt.opacity     = 0
        when 2
            @ngame_button.opacity        = 255
            @ngame_button_slt.opacity    = 0
            @continue_button.opacity     = 255
            @continue_button_slt.opacity = 0
            @exit_button.opacity         = 0
            @exit_button_slt.opacity     = 255
        end
    end
    def create_images
        if ZK_US_Config::Logo_Active
            @logo = Sprite.new
            Graphics.fadeout(0)
            @logo.bitmap = Cache.title1(ZK_US_Config::Logo_Image)
            Audio.se_play("Audio/SE/Heal4",50,60) # <========= EDITE AQUI =========<
            Graphics.fadein(ZK_US_Config::Logo_Timer[0])
            Graphics.wait(ZK_US_Config::Logo_S_Time)
            Graphics.fadeout(ZK_US_Config::Logo_Timer[1])
            @logo.dispose 
        end
        @background.bitmap     = Cache.title1(ZK_US_Config::Background)
        @background.opacity    = 255
        @title.x               = ZK_US_Config::Name_Position[0]
        @title.y               = ZK_US_Config::Name_Position[1]
        @title.bitmap          = Cache.title1(ZK_US_Config::Name_Title)
        @title.opacity         = 255
        Graphics.fadein(120)
        @ngame_button.x        = ZK_US_Config::NGame_Position[0]
        @ngame_button_slt.x    = ZK_US_Config::NGame_Position[0]
        @ngame_button.y        = ZK_US_Config::NGame_Position[1]
        @ngame_button_slt.y    = ZK_US_Config::NGame_Position[1]
        @continue_button.x     = ZK_US_Config::Continue_Position[0]
        @continue_button_slt.x = ZK_US_Config::Continue_Position[0]
        @continue_button.y     = ZK_US_Config::Continue_Position[1]
        @continue_button_slt.y = ZK_US_Config::Continue_Position[1]
        @exit_button.x         = ZK_US_Config::Exit_Position[0]
        @exit_button_slt.x     = ZK_US_Config::Exit_Position[0]
        @exit_button.y         = ZK_US_Config::Exit_Position[1]
        @exit_button_slt.y     = ZK_US_Config::Exit_Position[1]
    end
    def command_new_game
        DataManager.setup_new_game
        fadeout_all
        $game_map_autoplay
        SceneManager.goto(Scene_Map)
    end
    def command_continue
        SceneManager.call(Scene_Load)
    end
    def command_shutdown
        fadeout_all
        SceneManager.exit
    end
    def terminate
        super
        @ngame_button.dispose
        @continue_button.dispose
        @exit_button.dispose
        @title.dispose
        if ZK_US_Config::Logo_Active
            @logo.dispose
        end
    end
end
[close]
    [box class=titlebg]
Créditos e Avisos
[/box]
   
Criador: Zhankou
Me baseei na aula sete do Masked e decidi implementar algo. Mais uma vez digo que esse é meu primeiro script e peço a ajuda de vocês para melhorar. Raizen pelas dicas

Citação de: Zhankou online 17/05/2015 às 03:12
Me baseei na aula sete do Masked e decidi implementar algo. Mais uma vez digo que esse é meu primeiro script e peço a ajuda de vocês para melhorar
Não deveria ter dito isso  :malvado:

Então, relaxa, vou ser sincero.
Parabéns pelo scripts xD, e parabéns por entrar nesse mundo que precisamos de bem mais gente do que temos ultimamente.

Vou então aos pontos já que você mesmo pediu ^^.

o se(if), sempre verificar exatamente o estado da sentença, então ele vai verificar se tudo dentro da condição é verdadeira ou falsa.
if ZK_US_Config::Logo_Active == true

é redundante, porque se dentro do if eu verifico se é verdadeiro ou falso, e a Logo_Active já vai retornar verdadeiro ou falso... eu não preciso verificar de novo se ela é igual a verdadeiro, isso já faria o truque
if ZK_US_Config::Logo_Active
  :ok:

Isso daqui, é um processo BEM, mas BEEEEM Pesado mesmo
        when 0 
            @ngame_button.bitmap    = Cache.title1(ZK_US_Config::NGame_Images[1])
            @continue_button.bitmap = Cache.title1(ZK_US_Config::Continue_Images[0])
            @exit_button.bitmap     = Cache.title1(ZK_US_Config::Exit_Images[0])
        when 1
            @ngame_button.bitmap    = Cache.title1(ZK_US_Config::NGame_Images[0])
            @continue_button.bitmap = Cache.title1(ZK_US_Config::Continue_Images[1])
            @exit_button.bitmap     = Cache.title1(ZK_US_Config::Exit_Images[0])
        when 2
            @ngame_button.bitmap    = Cache.title1(ZK_US_Config::NGame_Images[0])
            @continue_button.bitmap = Cache.title1(ZK_US_Config::Continue_Images[0])
            @exit_button.bitmap     = Cache.title1(ZK_US_Config::Exit_Images[1])
        end


Isso está dentro do update, então o que ocorre, a cada e todos os frames, 60 por segundo, vai ser carregado 3 imagens, imagina o rpg maker ter que desenhar 180 imagens do zero por segundo... pois bem, deu para ver aonde isso vai parar.

como fazer então, você deve carregar essas imagens antes, la no método start do mesmo modo que fez o Sprite.new, e no update apenas manipular elas... ou seja, diminuindo opacidade, tirando visibilidade e coisas assim... Bem menos impactante, além de possibilitar a você mexer com as animações dessas imagens ao invés de ficarem bem estáticas como estão.

Bom, pelo que me lembre esses 2 pontos mais, o primeiro é facinho arrumar, e o segundo vai requerer uma mexida maior no script, mas.. de qualquer modo, parabéns man! Espero MUITO que tenha novos scripts seu por aqui.

 :wow: Cara mais que frenético seu script mano!Muito bom!vlw! :clap:
ShinBudokai