Suporte no desenvolvimento de jogos


    [Script] Introdução antes do Scene_Title

    avatar
    erikfn
    Novato
    Novato

    Mensagens : 1
    Créditos : 0
    Cash : 0

    [Script] Introdução antes do Scene_Title Empty [Script] Introdução antes do Scene_Title

    Mensagem por erikfn em Ter Jan 13, 2015 4:28 pm

    Boa tarde,
    Estou tentando aprender a trabalhar com Ruby, entretanto, tenho encontrado algumas dificuldades. Uma delas aparece neste script:
    Código:
    #-------------------------------------------------------------------------------
    # Por Erikfn.
    #-------------------------------------------------------------------------------
    class Scene_Intro < Scene_Base
      
    #-------------------------------------------------------------------------------
    # Início do processo, chamando a def super da Classe-mãe
    #-------------------------------------------------------------------------------
      def start
        super
        SceneManager.clear
        Graphics.freeze
        create_images
        @show_off = false
        filename
      end
      
    #-------------------------------------------------------------------------------
    # Atualização da tela
    #-------------------------------------------------------------------------------
    # renomeando def update
      alias intro update
    # chamando a def update, mantendo as configurações originais e agregando novas
      def update
        intro
        play_music
        create_intro
        if Input.trigger?(:C)
          terminate
        end
      end
      
      def filename
        filename = ""
      end

    #-------------------------------------------------------------------------------
    # Finalização do processo. Apaga as imagens da tela. Chamada direta para
    # Scene_Title quando o processo terminar
    #-------------------------------------------------------------------------------
      def terminate
        super
        dispose_images
        SceneManager.goto(Scene_Title)
      end

    #-------------------------------------------------------------------------------
    # Crianção das imagens. Localização das imagens: Cache.nomedapasta("nome do
    # arquivo"). Opacity = 0 - imagens invisíveis.
    #-------------------------------------------------------------------------------
      def create_images
        @sprite1 = Sprite.new
        @sprite1.bitmap = Cache.title1("Book")
        @sprite2 = Sprite.new
        @sprite2.bitmap = Cache.title1("Castle")
        @sprite3 = Sprite.new
        @sprite3.bitmap = Cache.title1("CrossedSwords")
        @sprite4 = Sprite.new
        @sprite4.bitmap = Cache.title1("Crystal")
        @sprite1.opacity = 0
        @sprite2.opacity = 0
        @sprite3.opacity = 0
        @sprite4.opacity = 0
      end

    #-------------------------------------------------------------------------------
    # Aumenta a opacidade das imagens, tornando-as visíveis.
    #-------------------------------------------------------------------------------
      def create_intro
        for i in 1..4
          case i
          when 1
            @sprite1.opacity = 255
            Audio.new("Airship", 100, 50).play
            transition_intro
            dispose_images
          when 2
            @sprite2.opacity = 255
            Audio.play("Battle1", 100, 50)
            transition_intro
            dispose_images
          when 3
            @sprite3.opacity = 255
            Audio.play("Battle2", 100, 50)
            transition_intro
            dispose_images
          when 4
            @sprite4.opacity = 255
            Audio.play("Battle3", 100, 50)
            transition_intro
            dispose_images
          end
        end
      end
      
    #-------------------------------------------------------------------------------
    # Limpa as imagens
    #-------------------------------------------------------------------------------
      def dispose_images
        @sprite1.bitmap.dispose
        @sprite1.dispose
        @sprite2.bitmap.dispose
        @sprite2.dispose
        @sprite3.bitmap.dispose
        @sprite3.dispose
        @sprite4.bitmap.dispose
        @sprite4.dispose
      end

    #-------------------------------------------------------------------------------
    # Tempo de transição
    #-------------------------------------------------------------------------------
      alias transition_intro transition_speed
      def transition_speed
        transition_intro
        return 30
      end
      
    #-------------------------------------------------------------------------------
    # Música
    #-------------------------------------------------------------------------------  
      def play_music
        Audio.("Audio/BGM/" + filename).play
        RPG::BGS.stop
        RPG::ME.stop
      end
      
    end

    A ideia dele é bem simples: antes do título, rolar algumas imagens de introdução. Essa abertura poderia ser pulada com o aperto de um botão.
    Entretanto, queria fazer com que cada imagem nova que aparecesse, tocasse uma música (ou som, quando o caso) diferente. E até agora não consigo fazer ideia de como programar para que, a cada imagem, um arquivo de áudio diferente seja chamado.
    Alguém poderia me dar uma luz? Esta é a ultima versão, quando desisti de continuar.

      Data/hora atual: Dom Dez 15, 2019 5:50 am