设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

新人请教一个问题:播放任意bgm音乐的脚本代码是什么?

查看数: 3502 | 评论数: 11 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-11-2 23:33

正文摘要:

本帖最后由 飞翔的小鸟3 于 2013-11-3 00:46 编辑 各位前辈,是这样的: 前几天在ACE的提问区偶然发现有人提问“ 怎么在游戏中更换标题bgm? ”(地址,这位的问题已经解决了:http://rpg.blue/thread-336928-1-2 ...

回复

飞翔的小鸟3 发表于 2013-11-3 11:49:43
余烬之中 发表于 2013-11-3 11:10
  • Scene_Changebgm
    class Scene_Changebgm < Scene_Base
    #开始处理

  • 谢谢!真的谢谢你们!!
    余烬之中,还有喵呜喵5前辈!
    在此向你们辛勤的帮助以示感谢。我的问题已经得到了很好的解决,虽然这个脚本真的很无聊,但我还是得到了你们的真诚相助,我再次表示感谢!
    嗯,问题解决了,我可以改为“已经解决”了吧?

    点评

    嗯,知道了。  发表于 2013-11-3 11:56
    不用自己改,版主会来结算【笑  发表于 2013-11-3 11:52
    余烬之中 发表于 2013-11-3 11:10:52
    飞翔的小鸟3 发表于 2013-11-3 10:40
    前辈,这里要做个说明:
    1.我本来也没用,但是结果BGM音乐播放出来了,窗口却卡住了。如下:

  • Scene_Changebgm
    RUBY 代码复制
    1. class Scene_Changebgm < Scene_Base
    2. #开始处理
    3.   def start
    4.     super
    5.     @changebgm = Bgm_change.new(0,0)
    6.     create_background
    7.     create_command_window
    8.     @ALLBGMMAX = 5
    9.     @NOWBGM    = 1
    10.     @bgmname = ["","Theme1","Theme2","Theme3","Theme4","Theme5"]
    11.   end
    12. #结束处理
    13.   def terminate
    14.     super
    15.     @changebgm.dispose
    16.     dispose_background
    17.     close_command_window
    18.   end
    19. #生成背景
    20.   def create_background
    21.     @background_sprite = Sprite.new
    22.     @background_sprite.bitmap = SceneManager.background_bitmap
    23.     @background_sprite.color.set(0, 0, 0, 128)
    24.   end
    25. #释放背景
    26.   def dispose_background
    27.     @background_sprite.dispose
    28.   end
    29. #生成窗口指令
    30.   def create_command_window
    31.   @changebgm.set_handler(:biaoti, method(:return_scene))
    32.   @changebgm.set_handler(:last, method(:last))
    33.   @changebgm.set_handler(:next, method(:next))
    34.   @changebgm.set_handler(:savemusic, method(:savemusic))
    35.   end
    36. #关闭窗口指令
    37.   def close_command_window
    38.     @changebgm.dispose
    39.   end
    40. #上一首
    41.   def last
    42.     if @NOWBGM != 1
    43.       @NOWBGM -= 1
    44.     elsif @NOWBGM = 1
    45.       @NOWBGM = @ALLBGMMAX
    46.     end
    47.     playbgm
    48.   end
    49. #下一首
    50.   def next
    51.     if @NOWBGM != @ALLBGMMAX
    52.       @NOWBGM += 1
    53.     elsif @NOWBGM = @ALLBGMMAX
    54.       @NOWBGM = 1
    55.     end
    56.     playbgm
    57.   end
    58. #播放音乐
    59.   def playbgm
    60.  
    61.     Audio.bgm_stop
    62.     Audio.bgm_play("Audio/BGM/#{@bgmname[@NOWBGM]}",100,70,0)
    63.   end
    64. #保存当前音乐
    65.   def savemusic
    66.     $data_system.title_bgm = RPG::BGM.new(@bgmname[@NOWBGM])
    67.     save_data($data_system, "Data/System.rvdata2")
    68.     Sound.play_save
    69.     return_scene
    70.   end
    71. end

  • class Bgm_change
    RUBY 代码复制
    1. class Bgm_change < Window_Command
    2.   def initialize(x,y)
    3.     super
    4.     self.openness = 0
    5.     open
    6.   end
    7.   def make_command_list
    8.     add_command(Vocab::Backbiaoti, :biaoti)
    9.     add_command(Vocab::Last, :last)
    10.     add_command(Vocab::Next, :next)
    11.     add_command(Vocab::Savemusic, :savemusic)
    12.   end
    13.   def process_ok
    14.     super
    15.     activate
    16.   end
    17. end

  • Scene_Title
    RUBY 代码复制
    1. #encoding:utf-8
    2. #==============================================================================
    3. # ■ Scene_Title
    4. #------------------------------------------------------------------------------
    5. #  标题画面
    6. #==============================================================================
    7.  
    8. class Scene_Title < Scene_Base
    9.   #--------------------------------------------------------------------------
    10.   # ● 开始处理
    11.   #--------------------------------------------------------------------------
    12.   def start
    13.     super
    14.     SceneManager.clear
    15.     Graphics.freeze
    16.     create_background
    17.     create_foreground
    18.     create_command_window
    19.     play_title_music
    20.   end
    21.   #--------------------------------------------------------------------------
    22.   # ● 获取渐变速度
    23.   #--------------------------------------------------------------------------
    24.   def transition_speed
    25.     return 20
    26.   end
    27.   #--------------------------------------------------------------------------
    28.   # ● 结束处理
    29.   #--------------------------------------------------------------------------
    30.   def terminate
    31.     super
    32.     SceneManager.snapshot_for_background
    33.     dispose_background
    34.     dispose_foreground
    35.   end
    36.   #--------------------------------------------------------------------------
    37.   # ● 生成背景
    38.   #--------------------------------------------------------------------------
    39.   def create_background
    40.     @sprite1 = Sprite.new
    41.     @sprite1.bitmap = Cache.title1($data_system.title1_name)
    42.     @sprite2 = Sprite.new
    43.     @sprite2.bitmap = Cache.title2($data_system.title2_name)
    44.     center_sprite(@sprite1)
    45.     center_sprite(@sprite2)
    46.   end
    47.   #--------------------------------------------------------------------------
    48.   # ● 生成背景(gai)
    49.   #--------------------------------------------------------------------------
    50.   def create_background
    51.     beijing = rand(3)
    52.     case beijing
    53.       when 0
    54.         @beijingtwo = "Book"
    55.       when 1
    56.         @beijingtwo = "Castle"
    57.       when 2
    58.         @beijingtwo = "CrossedSwords"
    59.     end
    60.     @sprite1 = Sprite.new
    61.     @sprite1.bitmap = Cache.title1($data_system.title1_name)
    62.     @sprite1.bitmap = Cache.title1(@beijingtwo)
    63.     @sprite2 = Sprite.new
    64.     @sprite2.bitmap = Cache.title2($data_system.title2_name)
    65.     center_sprite(@sprite1)
    66.     center_sprite(@sprite2)
    67.   end
    68.  
    69.   #--------------------------------------------------------------------------
    70.   # ● 生成前景
    71.   #--------------------------------------------------------------------------
    72.   def create_foreground
    73.     @foreground_sprite = Sprite.new
    74.     @foreground_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    75.     @foreground_sprite.z = 100
    76.     draw_game_title if $data_system.opt_draw_title
    77.   end
    78.   #--------------------------------------------------------------------------
    79.   # ● 绘制游戏标题
    80.   #--------------------------------------------------------------------------
    81.   def draw_game_title
    82.     @foreground_sprite.bitmap.font.size = 48
    83.     rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)
    84.     @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)
    85.   end
    86.   #--------------------------------------------------------------------------
    87.   # ● 释放背景
    88.   #--------------------------------------------------------------------------
    89.   def dispose_background
    90.     @sprite1.bitmap.dispose
    91.     @sprite1.dispose
    92.     @sprite2.bitmap.dispose
    93.     @sprite2.dispose
    94.   end
    95.   #--------------------------------------------------------------------------
    96.   # ● 释放前景
    97.   #--------------------------------------------------------------------------
    98.   def dispose_foreground
    99.     @foreground_sprite.bitmap.dispose
    100.     @foreground_sprite.dispose
    101.   end
    102.   #--------------------------------------------------------------------------
    103.   # ● 执行精灵居中
    104.   #--------------------------------------------------------------------------
    105.   def center_sprite(sprite)
    106.     sprite.ox = sprite.bitmap.width / 2
    107.     sprite.oy = sprite.bitmap.height / 2
    108.     sprite.x = Graphics.width / 2
    109.     sprite.y = Graphics.height / 2
    110.   end
    111.   #--------------------------------------------------------------------------
    112.   # ● 生成指令窗口
    113.   #--------------------------------------------------------------------------
    114.   def create_command_window
    115.     @command_window = Window_TitleCommand.new
    116.     @command_window.set_handler(:new_game, method(:command_new_game))
    117.     @command_window.set_handler(:continue, method(:command_continue))
    118.     @command_window.set_handler(:shutdown, method(:command_shutdown))
    119.     @command_window.set_handler(:changebgm, method(:command_changebgm_open))
    120.   end
    121.   #--------------------------------------------------------------------------
    122.   # ● 指令“更改BGM”
    123.   #--------------------------------------------------------------------------
    124.   def command_changebgm_open
    125.     SceneManager.call(Scene_Changebgm)
    126.   end
    127.   #--------------------------------------------------------------------------
    128.   # ● 关闭指令窗口
    129.   #--------------------------------------------------------------------------
    130.   def close_command_window
    131.     @command_window.close
    132.     update until @command_window.close?
    133.   end
    134.   #--------------------------------------------------------------------------
    135.   # ● 指令“开始游戏”
    136.   #--------------------------------------------------------------------------
    137.   def command_new_game
    138.     DataManager.setup_new_game
    139.     close_command_window
    140.     fadeout_all
    141.     $game_map.autoplay
    142.     SceneManager.goto(Scene_Map)
    143.   end
    144.   #--------------------------------------------------------------------------
    145.   # ● 指令“继续游戏”
    146.   #--------------------------------------------------------------------------
    147.   def command_continue
    148.     close_command_window
    149.     SceneManager.call(Scene_Load)
    150.   end
    151.   #--------------------------------------------------------------------------
    152.   # ● 指令“退出游戏”
    153.   #--------------------------------------------------------------------------
    154.   def command_shutdown
    155.     close_command_window
    156.     fadeout_all
    157.     SceneManager.exit
    158.   end
    159.   #--------------------------------------------------------------------------
    160.   # ● 播放标题画面音乐
    161.   #--------------------------------------------------------------------------
    162.   def play_title_music
    163.     $data_system.title_bgm.play
    164.     RPG::BGS.stop
    165.     RPG::ME.stop
    166.   end
    167. end

  • Window_TitleCommand
    RUBY 代码复制
    1. #encoding:utf-8
    2. #==============================================================================
    3. # ■ Window_TitleCommand
    4. #------------------------------------------------------------------------------
    5. #  标题画面中,选择“开始游戏/继续游戏”的窗口。
    6. #==============================================================================
    7.  
    8. class Window_TitleCommand < Window_Command
    9.   #--------------------------------------------------------------------------
    10.   # ● 初始化对象
    11.   #--------------------------------------------------------------------------
    12.   def initialize
    13.     super(0, 0)
    14.     update_placement
    15.     select_symbol(:continue) if continue_enabled
    16.     self.openness = 0
    17.     open
    18.   end
    19.   #--------------------------------------------------------------------------
    20.   # ● 获取窗口的宽度
    21.   #--------------------------------------------------------------------------
    22.   def window_width
    23.     return 160
    24.   end
    25.   #--------------------------------------------------------------------------
    26.   # ● 更新窗口的位置
    27.   #--------------------------------------------------------------------------
    28.   def update_placement
    29.     self.x = (Graphics.width - width) / 2
    30.     self.y = (Graphics.height * 1.6 - height) / 2
    31.   end
    32.   #--------------------------------------------------------------------------
    33.   # ● 生成指令列表
    34.   #--------------------------------------------------------------------------
    35.   def make_command_list
    36.     add_command(Vocab::new_game, :new_game)
    37.     add_command(Vocab::continue, :continue, continue_enabled)
    38.     add_command(Vocab::Changebgm,:changebgm)
    39.     add_command(Vocab::shutdown, :shutdown)
    40.   end
    41.   #--------------------------------------------------------------------------
    42.   # ● 获取“继续游戏”选项是否有效
    43.   #--------------------------------------------------------------------------
    44.   def continue_enabled
    45.     DataManager.save_file_exists?
    46.   end
    47. end
  • Vocab没有修改
  • 评分

    参与人数 1梦石 +2 收起 理由
    Sion + 2 认可答案

    查看全部评分

    余烬之中 发表于 2013-11-3 10:26:10
    飞翔的小鸟3 发表于 2013-11-3 10:07
    谢谢前辈的不吝赐教,又弄好了。
    再厚脸皮问一个问题:怎么实现保存当前背景音乐呢?我那个不是保存的方 ...

    • Scene_Changebgm
      • RUBY 代码复制
        1. def playbgm
        2.     bgmname = [
        3.                "","Audio/BGM/Theme1","Audio/BGM/Theme2","Audio/BGM/Theme3",
        4.                "Audio/BGM/Theme4","Audio/BGM/Theme5"
        5.                ]
        6.     Audio.bgm_stop
        7.     filename = bgmname[$NOWBGM]
        8.     Audio.bgm_play(filename,100,70,0)
        9.     SceneManager.goto(Scene_Changebgm)
        10.   end

        不需要SceneManager.goto(Scene_Changebgm)
      • RUBY 代码复制
        1. def savemusic
        2.     @game_system = Game_System.new
        3.     @game_system.save_bgm
        4.     Sound.play_save
        5.     SceneManager.return
        6.   end

        改为
        RUBY 代码复制
        1. def savemusic
        2.     $data_system.title_bgm = bgmname[$NOWBGM]
        3.     save_data($data_system, "Data/System.rvdata2")

    飞翔的小鸟3 发表于 2013-11-3 10:19:36
    喵呜喵5 发表于 2013-11-3 10:12
    这个具体要看你想要实现怎样的保存效果,请描述的清楚一些……

    前辈你好,我是想按下“保存BGM”键时,把当前播放的背景音乐保存到数据库里面,这样当下一次打开游戏时,播放的就是上一次自己选的BGM了。类似于在按F9弹出的数据库中----->系统------>改标题画面的音乐。

    点评

    按楼下的方式来,之后load_data一下就好了  发表于 2013-11-3 10:31
    喵呜喵5 发表于 2013-11-3 10:12:38
    这个具体要看你想要实现怎样的保存效果,请描述的清楚一些……
    飞翔的小鸟3 发表于 2013-11-3 10:07:26
    余烬之中 发表于 2013-11-3 09:27
    Scene_Changebgm 46行和55行
    类似于$NOWBGM + 1的地方
    改为$NOWBGM += 1

    谢谢前辈的不吝赐教,又弄好了。
    再厚脸皮问一个问题:怎么实现保存当前背景音乐呢?我那个不是保存的方法......
    这个要用像存档这样的方式吗?
    余烬之中 发表于 2013-11-3 09:27:28
    飞翔的小鸟3 发表于 2013-11-3 09:13
    谢谢这位前辈了,我弄好了。
    但想问问为什么播放后一直是第一首和最后一首?
    我想可能也就只有@b的值被固 ...

    Scene_Changebgm 46行和55行
    类似于$NOWBGM + 1的地方
    改为$NOWBGM += 1
    之前你只是加上,表达式的值改变了,变量还是原来的样子
    要赋值

    Scene_Title 177
    RUBY 代码复制
    1. def command_changebgm_open
    2.     SceneManager.call(Scene_Changebgm)
    3.     @command_window.close
    4.   end

    改为
    RUBY 代码复制
    1. def command_changebgm_open
    2.     SceneManager.call(Scene_Changebgm)
    3.   end

    场景转换不需要关闭窗口

    Vocab不建议使用Next
    next好像就是一个保留字还是关键字什么的…………
    飞翔的小鸟3 发表于 2013-11-3 09:13:38
    本帖最后由 飞翔的小鸟3 于 2013-11-3 09:25 编辑
    喵呜喵5 发表于 2013-11-3 00:35
    Audio.bgm_play(filename,100,70,0)即可
    大括号的意思表示后面几个参数已经有了默认的定义值所以偷懒的话这 ...


    谢谢这位前辈了,我弄好了。
    但想问问为什么播放后一直是第一首和最后一首?
    我想可能也就只有@b的值被固定为1了?这个是怎么回事?我不是把@ b 的值去运算了吗?
    下面是我的场景类中自己写的脚本:(前辈那个简化的方法有点看不懂...抱歉...)
    RUBY 代码复制
    1. class Scene_Changebgm<Scene_Base
    2.   $ALLBGMMAX = 5
    3.   $NOWBGM    = 1
    4. #开始处理
    5.   def start
    6.     super
    7.     @changebgm = Bgm_change.new(0,0)
    8.     create_background
    9.     create_command_window
    10.   end
    11. #结束处理
    12.   def terminate
    13.     super
    14.     @changebgm.dispose
    15.     dispose_background
    16.     close_command_window
    17.   end
    18. #生成背景
    19.   def create_background
    20.     @background_sprite = Sprite.new
    21.     @background_sprite.bitmap = SceneManager.background_bitmap
    22.     @background_sprite.color.set(0, 0, 0, 128)
    23.   end
    24. #释放背景
    25.   def dispose_background
    26.     @background_sprite.dispose
    27.   end
    28. #生成窗口指令
    29.   def create_command_window
    30.   @changebgm.set_handler(:biaoti, method(:biaotiback))
    31.   @changebgm.set_handler(:last, method(:last))
    32.   @changebgm.set_handler(:next, method(:next))
    33.   @changebgm.set_handler(:savemusic, method(:savemusic))
    34.   end
    35. #关闭窗口指令
    36.   def close_command_window
    37.     @changebgm.dispose
    38.   end
    39. #返回标题画面
    40.   def biaotiback
    41.     SceneManager.return
    42.   end
    43. #上一首
    44.   def last
    45.     if $NOWBGM != 1
    46.       $NOWBGM - 1
    47.     else $NOWBGM = 1
    48.       $NOWBGM = $ALLBGMMAX
    49.     end
    50.     playbgm
    51.   end
    52. #下一首
    53.   def next
    54.     if $NOWBGM != $ALLBGMMAX
    55.       $NOWBGM + 1
    56.     else $NOWBGM = $ALLBGMMAX
    57.       $NOWBGM = 1
    58.     end
    59.     playbgm
    60.   end
    61. #播放音乐
    62.   def playbgm
    63.     bgmname = [
    64.                "","Audio/BGM/Theme1","Audio/BGM/Theme2","Audio/BGM/Theme3",
    65.                "Audio/BGM/Theme4","Audio/BGM/Theme5"
    66.                ]
    67.     Audio.bgm_stop
    68.     filename = bgmname[$NOWBGM]
    69.     Audio.bgm_play(filename,100,70,0)
    70.     SceneManager.goto(Scene_Changebgm)
    71.   end
    72. #保存当前音乐(这个莫名其妙,好像没用?)
    73.   def savemusic
    74.     @game_system = Game_System.new
    75.     @game_system.save_bgm
    76.     Sound.play_save
    77.     SceneManager.return
    78.   end
    79. end


    注:
    我的脚本大多是在原脚本上修改的,所以下面是我在原脚本中定义的一些代码(用###夹起来的代码):

    Vocab模块
    RUBY 代码复制
    1. module Vocab
    2. ############################下面
    3.   Changebgm       = "更换bgm"
    4.   Next            = "下一首"
    5.   Last            = "上一首"
    6.   Backbiaoti      = "返回标题"
    7.   Onbgm           = "选择音乐"
    8.   Savemusic       = "保存音乐"
    9. ##############################上面
    10. end



    Window_TitleCommand类
    RUBY 代码复制
    1. class Window_TitleCommand < Window_Command
    2.   #--------------------------------------------------------------------------
    3.   # ● 初始化对象
    4.   #--------------------------------------------------------------------------
    5.   def initialize
    6.     super(0, 0)
    7.     update_placement
    8.     select_symbol(:continue) if continue_enabled
    9.     self.openness = 0
    10.     open
    11.   end
    12.   #--------------------------------------------------------------------------
    13.   # ● 获取窗口的宽度
    14.   #--------------------------------------------------------------------------
    15.   def window_width
    16.     return 160
    17.   end
    18.   #--------------------------------------------------------------------------
    19.   # ● 更新窗口的位置
    20.   #--------------------------------------------------------------------------
    21.   def update_placement
    22.     self.x = (Graphics.width - width) / 2
    23.     self.y = (Graphics.height * 1.6 - height) / 2
    24.   end
    25.   #--------------------------------------------------------------------------
    26.   # ● 生成指令列表
    27.   #--------------------------------------------------------------------------
    28.   def make_command_list
    29.     add_command(Vocab::new_game, :new_game)
    30.     add_command(Vocab::continue, :continue, continue_enabled)
    31. #############################################下面
    32.     add_command(Vocab::Changebgm,:changebgm)
    33. ###############################################上面
    34.     add_command(Vocab::shutdown, :shutdown)
    35.   end
    36.   #--------------------------------------------------------------------------
    37.   # ● 获取“继续游戏”选项是否有效
    38.   #--------------------------------------------------------------------------
    39.   def continue_enabled
    40.     DataManager.save_file_exists?
    41.   end
    42. end




    一个window类的简单窗口
    RUBY 代码复制
    1. class Bgm_change<Window_Command
    2. #####################################下面
    3.   def initialize(x,y)
    4.     super
    5.     self.openness = 0
    6.     open
    7.   end
    8.   def make_command_list
    9.     add_command(Vocab::Backbiaoti, :biaoti)
    10.     add_command(Vocab::Last, :last)
    11.     add_command(Vocab::Next, :next)
    12.     add_command(Vocab::Savemusic, :savemusic)
    13.   end
    14. end
    15. ##########################################上面




    Scene_Title类
    RUBY 代码复制
    1. class Scene_Title < Scene_Base
    2.   #--------------------------------------------------------------------------
    3.   # ● 开始处理
    4.   #--------------------------------------------------------------------------
    5.   def start
    6.     super
    7.     SceneManager.clear
    8.     Graphics.freeze
    9.     create_background
    10.     create_foreground
    11.     create_command_window
    12.     play_title_music
    13.   end
    14.   #--------------------------------------------------------------------------
    15.   # ● 获取渐变速度
    16.   #--------------------------------------------------------------------------
    17.   def transition_speed
    18.     return 20
    19.   end
    20.   #--------------------------------------------------------------------------
    21.   # ● 结束处理
    22.   #--------------------------------------------------------------------------
    23.   def terminate
    24.     super
    25.     SceneManager.snapshot_for_background
    26.     dispose_background
    27.     dispose_foreground
    28.   end
    29.   #--------------------------------------------------------------------------
    30.   # ● 生成背景
    31.   #--------------------------------------------------------------------------
    32.   def create_background
    33.     @sprite1 = Sprite.new
    34.     @sprite1.bitmap = Cache.title1($data_system.title1_name)
    35.     @sprite2 = Sprite.new
    36.     @sprite2.bitmap = Cache.title2($data_system.title2_name)
    37.     center_sprite(@sprite1)
    38.     center_sprite(@sprite2)
    39.   end
    40.   #--------------------------------------------------------------------------
    41.   # ● 生成背景(gai)
    42.   #--------------------------------------------------------------------------
    43.   def create_background
    44.     beijing = rand(3)
    45.     case beijing
    46.       when 0
    47.         @beijingtwo = "Book"
    48.       when 1
    49.         @beijingtwo = "Castle"
    50.       when 2
    51.         @beijingtwo = "CrossedSwords"
    52.     end
    53.     @sprite1 = Sprite.new
    54.     @sprite1.bitmap = Cache.title1($data_system.title1_name)
    55.     @sprite1.bitmap = Cache.title1(@beijingtwo)
    56.     @sprite2 = Sprite.new
    57.     @sprite2.bitmap = Cache.title2($data_system.title2_name)
    58.     center_sprite(@sprite1)
    59.     center_sprite(@sprite2)
    60.   end
    61.  
    62.   #--------------------------------------------------------------------------
    63.   # ● 生成前景
    64.   #--------------------------------------------------------------------------
    65.   def create_foreground
    66.     @foreground_sprite = Sprite.new
    67.     @foreground_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    68.     @foreground_sprite.z = 100
    69.     draw_game_title if $data_system.opt_draw_title
    70.   end
    71.   #--------------------------------------------------------------------------
    72.   # ● 绘制游戏标题
    73.   #--------------------------------------------------------------------------
    74.   def draw_game_title
    75.     @foreground_sprite.bitmap.font.size = 48
    76.     rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)
    77.     @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)
    78.   end
    79.   #--------------------------------------------------------------------------
    80.   # ● 释放背景
    81.   #--------------------------------------------------------------------------
    82.   def dispose_background
    83.     @sprite1.bitmap.dispose
    84.     @sprite1.dispose
    85.     @sprite2.bitmap.dispose
    86.     @sprite2.dispose
    87.   end
    88.   #--------------------------------------------------------------------------
    89.   # ● 释放前景
    90.   #--------------------------------------------------------------------------
    91.   def dispose_foreground
    92.     @foreground_sprite.bitmap.dispose
    93.     @foreground_sprite.dispose
    94.   end
    95.   #--------------------------------------------------------------------------
    96.   # ● 执行精灵居中
    97.   #--------------------------------------------------------------------------
    98.   def center_sprite(sprite)
    99.     sprite.ox = sprite.bitmap.width / 2
    100.     sprite.oy = sprite.bitmap.height / 2
    101.     sprite.x = Graphics.width / 2
    102.     sprite.y = Graphics.height / 2
    103.   end
    104.   #--------------------------------------------------------------------------
    105.   # ● 生成指令窗口
    106.   #--------------------------------------------------------------------------
    107.   def create_command_window
    108.     @command_window = Window_TitleCommand.new
    109.     @command_window.set_handler(:new_game, method(:command_new_game))
    110.     @command_window.set_handler(:continue, method(:command_continue))
    111.     @command_window.set_handler(:shutdown, method(:command_shutdown))
    112. #################################################下面
    113.    @command_window.set_handler(:changebgm, method(:command_changebgm_open))
    114. ################################################上面
    115.   end
    116. #################################################下面
    117.   def command_changebgm_open
    118.     SceneManager.call(Scene_Changebgm)
    119.     @command_window.close
    120.   end
    121. ##################################################上面
    122.   #--------------------------------------------------------------------------
    123.   # ● 关闭指令窗口
    124.   #--------------------------------------------------------------------------
    125.   def close_command_window
    126.     @command_window.close
    127.     update until @command_window.close?
    128.   end
    129.   #--------------------------------------------------------------------------
    130.   #
    131.   def command_changebgm
    132.     @changebgm = Bgm_change.new(0,0)
    133.   end
    134.   #--------------------------------------------------------------------------
    135.   # ● 指令“开始游戏”
    136.   #--------------------------------------------------------------------------
    137.   def command_new_game
    138.     DataManager.setup_new_game
    139.     close_command_window
    140.     fadeout_all
    141.     $game_map.autoplay
    142.     SceneManager.goto(Scene_Map)
    143.   end
    144.   #--------------------------------------------------------------------------
    145.   # ● 指令“继续游戏”
    146.   #--------------------------------------------------------------------------
    147.   def command_continue
    148.     close_command_window
    149.     SceneManager.call(Scene_Load)
    150.   end
    151.   #--------------------------------------------------------------------------
    152.   # ● 指令“退出游戏”
    153.   #--------------------------------------------------------------------------
    154.   def command_shutdown
    155.     close_command_window
    156.     fadeout_all
    157.     SceneManager.exit
    158.   end
    159.   #--------------------------------------------------------------------------
    160.   # ● 播放标题画面音乐
    161.   #--------------------------------------------------------------------------
    162.   def play_title_music
    163.     $data_system.title_bgm.play
    164.     RPG::BGS.stop
    165.     RPG::ME.stop
    166.   end
    167. end




    可能有点乱....我等等看看再改改排版....

    点评

    0对3取余为0, 1对3取余为1,2对3取余为2,3对3取余为0,4对3取余为1……取余主要就是让你不需要判断当前数字是几也能在一串数字中循环  发表于 2013-11-3 10:16
    拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
     注册会员
    找回密码

    站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

    GMT+8, 2024-11-17 12:42

    Powered by Discuz! X3.1

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表