查看: 1634|回复: 2

[已经过期] 怎样可以在游戏中自动获得MP3曲目?

[复制链接]
梦石
0
星屑
459
在线时间
95 小时
注册时间
2012-2-11
回帖
31
发表于 2015-3-21 20:14:36 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
RT,我用了一个MP3脚本,但里面的曲目是内定好了的,怎么可以在游戏过程中慢慢收集曲目呢?求大神请教
[pre lang="ruby"]    #-------------------------------------------------------------------------------
    # ·音乐选择播放器  By 退屈£无聊
    #-------------------------------------------------------------------------------
    # 呃。无聊写个东西玩先。 Update V1.02
    # 介绍说明。音乐的设置格式 @music* = [名称,文件名, 简介],注意文字要加引号!
    # 加了歌的话,在调用choose_music也要注意了。
    # 相信也应该制作完成了吧。没有BUG了吧-0-。
    $是否退出关闭音乐 = true
    #-------------------------------------------------------------------------------
    class Scene_Music
    #===================================================
    # ·主过程
    #===================================================
      def main
        @music1 = ["bad apple","英文歌曲 - bad apple", "bad apple"]
        @music2 = ["板栗的故事","群星 - 板栗的故事", "标题音乐"]
        @music3 = ["我在马路边捡到一分钱","群星 - 我在马路边捡到一分钱", "啦啦啦"]
       @music_command = Window_Command.new(200, [@music1[0], @music2[0], @music3[0]])
        @music_command.x = 0
        @music_command.y = 0
        @music_command.opacity = 150
        @music_command.z = 9999
        @help_window = Window_MusicHelp.new
        @help_window.x = 200
        @help_window.y = 0
        @help_window.width = 440
        @help_window.height = 480
        @help_window.opacity = 150
        @help_window.z = 9999
        # 执行过渡
        Graphics.transition
        # 主循环
        loop do
          # 刷新游戏画面
          Graphics.update
          # 刷新输入信息
          Input.update
          # 刷新画面
          choose_music([@music1, @music2, @music3]) # 音乐如果有填加,不要忘了在这里填加!
          # 如果画面被切换的话就中断循环
          if $scene != self
            break
          end
        end
        # 准备过渡
        Graphics.freeze
        # 释放窗口
        @music_command.dispose
        @help_window.dispose
      end
    #==========================================================================
    # ·选歌过程
    #==========================================================================
    def choose_music(music)
      @music_command.update
      @help_window.update
      @musicfile = music
      if Input.trigger?(Input::B)
        $scene = Scene_Map.new
        if $是否退出关闭音乐
        $game_map.autoplay
        end
      end
      if Input.trigger?(Input::C)
        @music_name = "#{@musicfile[@music_command.index][1]}"
        Audio.bgm_play("Audio/BGM/" + @music_name , 84, 0)
      end
      @help_window.draw_music("#{@musicfile[@music_command.index][2]}")
    end
    #===========================透明部分==================================
    module XRXS_MP7_Module
      def create_spriteset
        @spriteset = Spriteset_Map.new
      end
      def dispose_spriteset
        @spriteset.dispose
      end
    end
    include XRXS_MP7_Module
      alias xrxs_mp7_main main
      def main
        create_spriteset
        xrxs_mp7_main
        dispose_spriteset
      end
    #=========不需要的删到这里为止======================
    end
    #==============================================================================
    # ■ Window_Music
    #------------------------------------------------------------------------------
    #  音乐简介显示窗口。
    #==============================================================================

    class Window_MusicHelp < Window_Base
      #--------------------------------------------------------------------------
      # ● 初始化对像
      #--------------------------------------------------------------------------
      def initialize
        super(240, 0, 400, 480)
        self.contents = Bitmap.new(self.width - 32, self.height - 32)
      end
      #--------------------------------------------------------------------------
      # ● 描绘音乐
      #--------------------------------------------------------------------------
      def draw_music(music)
        self.contents.clear
        # 记录文字x坐标
        x = 0
        # 记录文字y坐标
        y = 0
        # 记录换行时y坐标最小加值
        min_y = 0
        self.contents.font.color = normal_color
        # 描绘音乐简介
        text = music
        # 限制文字处理
        begin
          last_text = text.clone
          text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
        end until text == last_text
        text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
          $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
        end
        # c 获取 1 个字 (如果不能取得文字就循环)
        while ((c = text.slice!(/./m)) != nil)
          # 另起一行文字的情况下
          if c == "\n"
            y += [32, min_y].max
            min_y = 0
            x = 0
            # 下面的文字
            next
          end
          # 自动换行处理
          if x + self.contents.text_size(c).width > self.contents.width
            y += [32, min_y].max
            min_y = 0
            x = 0
          end
          # 描绘文字
          self.contents.draw_text(4 + x, y, 40, 32, c)
          # x 为要描绘文字的加法运算
          x += self.contents.text_size(c).width
        end
      end
    end[/pre]

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-3-22 09:49:33 | 显示全部楼层
本帖最后由 taroxd 于 2015-3-22 09:51 编辑

未测试,纯瞎写。只写了有修改的部分。

[pre lang="ruby"]
class Game_System

  # add music:
  # $game_system.music.push ["bad apple","英文歌曲 - bad apple", "bad apple"]

  def music
    @music ||= [
      ["bad apple","英文歌曲 - bad apple", "bad apple"],
      ["板栗的故事","群星 - 板栗的故事", "标题音乐"],
      ["我在马路边捡到一分钱","群星 - 我在马路边捡到一分钱", "啦啦啦"]
    ]
  end
end

class Scene_Music
  def main
    music = $game_system.music
    @music_command = Window_Command.new(200, music.map { |first,| first })
    @music_command.x = 0
    @music_command.y = 0
    @music_command.opacity = 150
    @music_command.z = 9999
    @help_window = Window_MusicHelp.new
    @help_window.x = 200
    @help_window.y = 0
    @help_window.width = 440
    @help_window.height = 480
    @help_window.opacity = 150
    @help_window.z = 9999
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      choose_music(music) # 音乐如果有填加,不要忘了在这里填加!
      # 如果画面被切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @music_command.dispose
    @help_window.dispose
  end

  # 原脚本
end[/pre]   
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-3-22 12:05:15 | 显示全部楼层
用二周目判断的方法新建一个可读取文件记录歌曲名字什么的然后显示就读取那个文件的内容然后这个文件是可以修改的,在没有得到这首歌的播放权的时候文件存的是未知什么的文字,得到播放权以后改写这个文件的内容文字?
(这样说看得懂吗···)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部