魔塔吧 关注:66,638贴子:2,176,823

回复:【教程】成就系统速成

只看楼主收藏回复




IP属地:贵州17楼2012-08-20 18:16
回复
    首先,我发一个带自动换BGM,选择项的空场景脚本供大家备用。
    #==============================================================================
    # ■ Scene_Achievement
    #------------------------------------------------------------------------------
    #  简易成就系统
    #==============================================================================
    #呼出此场景的方法:$scene = Scene_Achievement.new
    class Scene_Achievement
    #--------------------------------------------------------------------------
    # ● 初始化对像
    # menu_index : 命令光标的初期位置
    #--------------------------------------------------------------------------
    def initialize(menu_index = 0)
    @menu_index = menu_index
    Audio.bgm_play("Audio/BGM/XX", 100, 100) #更改BGM,将XX换成BGM文件夹下的音乐
    end
    #--------------------------------------------------------------------------
    # ● 主处理
    #--------------------------------------------------------------------------
    def main
    # 生成命令窗口
    s1 = ""
    @command_window = Window_Command.new(180, [s1])
    @command_window.index = @menu_index
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
    # 刷新游戏画面
    Graphics.update
    # 刷新输入信息
    Input.update
    # 刷新画面
    update
    # 如果切换画面就中断循环
    if $scene != self
    break
    end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @command_window.dispose
    end
    #--------------------------------------------------------------------------
    # ● 刷新画面
    #--------------------------------------------------------------------------
    def update
    @command_window.update
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
    # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    # 切换的地图画面
    $scene = Scene_Title.new #按下取消键返回标题画面,如果想返回游戏就换成$scene = Scene_Map.new
    return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
    # 命令窗口的光标位置分支
    case @command_window.index
    when 0
    #此处填写命令
    end
    # 主循环
    loop do
    # 刷新游戏画面
    Graphics.update
    # 刷新输入信息
    Input.update
    # 刷新画面
    update
    # 如果切换画面就中断循环
    if $scene != self
    break
    end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    end
    end
    end


    19楼2012-08-20 18:21
    收起回复
      2025-09-04 09:15:47
      广告
      不感兴趣
      开通SVIP免广告
      这贴含水量太高了,好吧我也来插一个


      20楼2012-08-20 18:22
      回复



        IP属地:贵州22楼2012-08-20 18:23
        回复
          做画面貌似挺简单。。。就是永久保存不会搞。。。。。


          IP属地:美国来自Android客户端23楼2012-08-20 18:24
          回复
            首先,我们先学做利用选择项显示窗口的成就系统。也就是与九命那个同原理。
            在这一部分写完后,我会放出完整的脚本供大家使用,当然,如果学会此部分的话你可以利用刚才的空场景脚本自制一个成就系统。


            24楼2012-08-20 18:25
            回复



              IP属地:贵州26楼2012-08-20 18:27
              回复
                不要跟我抢生意


                27楼2012-08-20 18:33
                收起回复
                  2025-09-04 09:09:47
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这是分类型成就需要用到的。比如“技术成就”“成长成就”等等。我们就按做这两个类别为例。
                  想实现上述内容,我们可以做2个窗口,一个用来显示技术成就,一个用来显示“成长成就”。
                  我先发一个空白窗口的脚本供备用。
                  #==============================================================================
                  # ■ Window_Chuangkoua
                  #------------------------------------------------------------------------------
                  #  一个空白的窗口。
                  #============================================================================== class Window_Chuangkoua < Window_Base
                  #--------------------------------------------------------------------------
                  # ● 初始化窗口
                  #--------------------------------------------------------------------------
                  def initialize
                  super(0, 0, 160, 64)#调整宽与高
                  self.contents = Bitmap.new(width - 32, height - 32)
                  refresh
                  end
                  #--------------------------------------------------------------------------
                  # ● 刷新
                  #--------------------------------------------------------------------------
                  def refresh
                  self.contents.clear
                  #从此处开始插入您的内容。
                  end
                  end


                  28楼2012-08-20 18:34
                  收起回复