设为首页收藏本站

仙剑之十里坡

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3427|回复: 1
打印 上一主题 下一主题

注释版Scene_Menu

[复制链接]

1013

主题

5

听众

2万

积分

返璞归真

不器用な星の瞬き

会员等级: 10

  • TA的每日心情
    擦汗
    5 天前
  • 签到天数: 1404 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23743
    历练
    3
    声望
    133
    人气
    2615

    转帖之王 金融巨子 黑色羽翼

    单身中……
    帮我摆脱单身吧
    跳转到指定楼层
    1
    发表于 2010-6-19 12:07:12 |只看该作者 |倒序浏览
    1. #==============================================================================
    2. # ■ Scene_Menu
    3. #------------------------------------------------------------------------------
    4. #  处理菜单画面的类。
    5. #==============================================================================

    6. class Scene_Menu#Menu的Scene类
    7.   #--------------------------------------------------------------------------
    8.   # ● 初始化对像
    9.   #     menu_index : 命令光标的初期位置
    10.   #--------------------------------------------------------------------------
    11.   def initialize(menu_index = 0)
    12.     @menu_index = menu_index
    13.   end
    14.   #--------------------------------------------------------------------------
    15.   # ● 主处理
    16.   #--------------------------------------------------------------------------
    17.   def main#main方法
    18.     # 生成命令窗口
    19.     s1 = $data_system.words.item#数据库“系统”的物品一词
    20.     s2 = $data_system.words.skill#数据库“系统”的技能一词
    21.     s3 = $data_system.words.equip#数据库“系统”的装备一词
    22.     s4 = "状态"
    23.     s5 = "存档"
    24.     s6 = "结束游戏"
    25.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    26.     #将s1, s2, s3, s4, s5, s6放入选项
    27.     @command_window.index = @menu_index
    28.     # 同伴人数为 0 的情况下
    29.     if $game_party.actors.size == 0
    30.       # 物品、特技、装备、状态无效化
    31.       @command_window.disable_item(0)#1号选项无效
    32.       @command_window.disable_item(1)#2号选项无效
    33.       @command_window.disable_item(2)#3号选项无效
    34.       @command_window.disable_item(3)#4号选项无效
    35.     end
    36.     # 禁止存档的情况下
    37.     if $game_system.save_disabled
    38.       # 存档无效
    39.       @command_window.disable_item(4)#5号选项无效
    40.     end
    41.     # 生成游戏时间窗口
    42.     @playtime_window = Window_PlayTime.new
    43.     @playtime_window.x = 0#游戏时间窗口的x坐标
    44.     @playtime_window.y = 224#游戏时间窗口的y坐标
    45.     # 生成步数窗口
    46.     @steps_window = Window_Steps.new
    47.     @steps_window.x = 0#步数窗口的x坐标
    48.     @steps_window.y = 320#步数窗口的y坐标
    49.     # 生成金钱窗口
    50.     @gold_window = Window_Gold.new
    51.     @gold_window.x = 0#x坐标
    52.     @gold_window.y = 416#y坐标
    53.     # 生成状态窗口
    54.     @status_window = Window_MenuStatus.new
    55.     @status_window.x = 160#x坐标
    56.     @status_window.y = 0#y坐标
    57.     # 执行过渡
    58.     Graphics.transition
    59.     # 主循环
    60.     loop do
    61.       # 刷新游戏画面
    62.       Graphics.update
    63.       # 刷新输入信息
    64.       Input.update
    65.       # 刷新画面
    66.       update
    67.       # 如果切换画面就中断循环
    68.       if $scene != self
    69.         break
    70.       end
    71.     end
    72.     # 准备过渡
    73.     Graphics.freeze
    74.     # 释放窗口
    75.     @command_window.dispose#释放掉五个相应的窗口
    76.     @playtime_window.dispose
    77.     @steps_window.dispose
    78.     @gold_window.dispose
    79.     @status_window.dispose
    80.   end
    81.   #--------------------------------------------------------------------------
    82.   # ● 刷新画面
    83.   #--------------------------------------------------------------------------
    84.   def update#update方法
    85.     # 刷新窗口
    86.     @command_window.update# 刷新五个相应的窗口
    87.     @playtime_window.update
    88.     @steps_window.update
    89.     @gold_window.update
    90.     @status_window.update
    91.     # 命令窗口被激活的情况下: 调用 update_command方法
    92.     if @command_window.active
    93.       update_command
    94.       return
    95.     end
    96.     # 状态窗口被激活的情况下: 调用 update_status方法
    97.     if @status_window.active
    98.       update_status
    99.       return
    100.     end
    101.   end
    102.   #--------------------------------------------------------------------------
    103.   # ● 刷新画面 (命令窗口被激活的情况下)
    104.   #--------------------------------------------------------------------------
    105.   def update_command#update_command方法
    106.     # 按下 B 键的情况下
    107.     if Input.trigger?(Input::B)
    108.       # 演奏取消 SE
    109.       $game_system.se_play($data_system.cancel_se)
    110.       #$data_system.cancel_se是数据库的取消SE
    111.       # 切换的地图画面
    112.       $scene = Scene_Map.new
    113.       return
    114.     end
    115.     # 按下 C 键的情况下
    116.     if Input.trigger?(Input::C)
    117.       # 同伴人数为 0、存档、游戏结束以外的场合
    118.       if $game_party.actors.size == 0 and @command_window.index < 4
    119.         # 演奏冻结 SE
    120.         $game_system.se_play($data_system.buzzer_se)
    121.         #$data_system.buzzer_se是数据库的冻结SE
    122.         return
    123.       end
    124.       # 命令窗口的光标位置分支
    125.       case @command_window.index
    126.       when 0  # 物品
    127.         # 演奏确定 SE
    128.         $game_system.se_play($data_system.decision_se)
    129.         # 切换到物品画面
    130.         $scene = Scene_Item.new
    131.       when 1  # 特技
    132.         # 演奏确定 SE
    133.         $game_system.se_play($data_system.decision_se)
    134.         # 激活状态窗口
    135.         @command_window.active = false
    136.         @status_window.active = true
    137.         @status_window.index = 0
    138.       when 2  # 装备
    139.         # 演奏确定 SE
    140.         $game_system.se_play($data_system.decision_se)
    141.         # 激活状态窗口
    142.         @command_window.active = false
    143.         @status_window.active = true
    144.         @status_window.index = 0
    145.       when 3  # 状态
    146.         # 演奏确定 SE
    147.         $game_system.se_play($data_system.decision_se)
    148.         # 激活状态窗口
    149.         @command_window.active = false
    150.         @status_window.active = true
    151.         @status_window.index = 0
    152.       when 4  # 存档
    153.         # 禁止存档的情况下
    154.         if $game_system.save_disabled
    155.           # 演奏冻结 SE
    156.           $game_system.se_play($data_system.buzzer_se)
    157.           return
    158.         end
    159.         # 演奏确定 SE
    160.         $game_system.se_play($data_system.decision_se)
    161.         # 切换到存档画面
    162.         $scene = Scene_Save.new
    163.       when 5  # 游戏结束
    164.         # 演奏确定 SE
    165.         $game_system.se_play($data_system.decision_se)
    166.         # 切换到游戏结束画面
    167.         $scene = Scene_End.new
    168.       end
    169.       return
    170.     end
    171.   end
    172.   #--------------------------------------------------------------------------
    173.   # ● 刷新画面 (状态窗口被激活的情况下)
    174.   #--------------------------------------------------------------------------
    175.   def update_status#update_status方法
    176.     # 按下 B 键的情况下
    177.     if Input.trigger?(Input::B)
    178.       # 演奏取消 SE
    179.       $game_system.se_play($data_system.cancel_se)
    180.       # 激活命令窗口
    181.       @command_window.active = true
    182.       @status_window.active = false
    183.       @status_window.index = -1
    184.       return
    185.     end
    186.     # 按下 C 键的情况下
    187.     if Input.trigger?(Input::C)
    188.       # 命令窗口的光标位置分支
    189.       case @command_window.index
    190.       when 1  # 特技
    191.         # 本角色的行动限制在 2 以上的情况下
    192.         if $game_party.actors[@status_window.index].restriction >= 2
    193.           # 演奏冻结 SE
    194.           $game_system.se_play($data_system.buzzer_se)
    195.           return
    196.         end
    197.         # 演奏确定 SE
    198.         $game_system.se_play($data_system.decision_se)
    199.         # 切换到特技画面
    200.         $scene = Scene_Skill.new(@status_window.index)
    201.       when 2  # 装备
    202.         # 演奏确定 SE
    203.         $game_system.se_play($data_system.decision_se)
    204.         # 切换的装备画面
    205.         $scene = Scene_Equip.new(@status_window.index)
    206.       when 3  # 状态
    207.         # 演奏确定 SE
    208.         $game_system.se_play($data_system.decision_se)
    209.         # 切换到状态画面
    210.         $scene = Scene_Status.new(@status_window.index)
    211.       end
    212.       return
    213.     end
    214.   end
    215. end
    复制代码
    我注释此脚本的目的是什么?为了让众多的RMER有自己风格的菜单!配合上Bitmap,就可以制作出独一无二的菜单了——轩辕剑式菜单什么的看厌了啊!
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享淘帖0 分享分享0 收藏收藏0

    168

    主题

    6

    听众

    1万

    积分

    超级版主

    蜀山剑侠银行行长

    超级版主

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 886 天

    [LV.10]以坛为家III

    精华
    3
    积分
    13210
    历练
    7
    声望
    24
    人气
    2442

    金融巨子 润泽万物 坚若磐石

    单身中……
    帮我摆脱单身吧
    2
    发表于 2010-6-19 12:18:32 |只看该作者
    忽忽,实用,赞一个。
    于是饮酒乐甚,扣舷而歌之。歌曰:“桂棹兮兰桨,击空明兮溯流光。残阳阳兮是羊羊,吾乃最爱南宫煌。”
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    手机版|Archiver|仙剑之十里坡 ( 苏ICP备11022766号 )  

    GMT+8, 2024-11-18 13:49 , Processed in 0.691920 second(s), 38 queries .

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部