Project1

标题: 金钱窗口中显示图标以及变量 [打印本页]

作者: YeYe.    时间: 2012-8-2 15:43
标题: 金钱窗口中显示图标以及变量
本帖最后由 YeYe. 于 2012-8-2 16:14 编辑

[attach]124503[/attach]

在金钱窗口里显示指定的图标,还有显示变量的。看上图
不知道怎么弄,只好悬赏了········
希望能有好心人帮助我~
作者: Mr.Puzzle    时间: 2012-8-2 15:43
本帖最后由 Mr.Puzzle 于 2012-8-2 18:37 编辑
  1. #==============================================================================
  2. # ■ Window_Gold改
  3. #------------------------------------------------------------------------------
  4. #  显示金钱的窗口。
  5. #==============================================================================

  6. class Window_Gold < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化窗口
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 0, 160, 200)
  12.     self.contents = Bitmap.new(width - 32, height - 32)
  13.     refresh
  14.   end
  15.   #设置图标ID
  16.   $iconsname1 = "035-Item04.png" #★金钱图标
  17.   $iconsname2 = "036-Item05.png" #★材料图标1
  18.   $iconsname3 = "037-Item06.png" #★材料图标2
  19.   $iconsname4 = "038-Item07.png" #★材料图标3
  20.   $iconsname5 = "039-Item08.png" #★材料图标4
  21.   #--------------------------------------------------------------------------
  22.   # ● 刷新
  23.   #--------------------------------------------------------------------------
  24.   def refresh
  25.     self.contents.clear
  26.     self.contents.font.color = normal_color
  27.     self.contents.draw_text(4, 0, 120-44-2, 32, $game_party.gold.to_s, 2)
  28.     self.contents.font.color = system_color
  29.     bitmap = RPG::Cache.icon($iconsname1)
  30.     self.contents.blt(x+100, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  31.     self.contents.font.color = normal_color
  32.     self.contents.draw_text(4, 0, 120-44-2, 100, "#{$game_variables[1]}", 2)#★变量ID1
  33.     bitmap = RPG::Cache.icon($iconsname2)
  34.     self.contents.blt(x+100, y + 38, bitmap, Rect.new(0, 0, 24, 24), opacity)
  35.     self.contents.draw_text(4, 0, 120-44-2, 166, "#{$game_variables[2]}", 2)#★变量ID2
  36.     bitmap = RPG::Cache.icon($iconsname3)
  37.     self.contents.blt(x+100, y + 70, bitmap, Rect.new(0, 0, 24, 24), opacity)
  38.     self.contents.draw_text(4, 0, 120-44-2, 232, "#{$game_variables[3]}", 2)#★变量ID3
  39.     bitmap = RPG::Cache.icon($iconsname4)
  40.     self.contents.blt(x+100, y + 104, bitmap, Rect.new(0, 0, 24, 24), opacity)
  41.     self.contents.draw_text(4, 0, 120-44-2, 298, "#{$game_variables[4]}", 2)#★变量ID4
  42.     bitmap = RPG::Cache.icon($iconsname5)
  43.     self.contents.blt(x+100, y + 138, bitmap, Rect.new(0, 0, 24, 24), opacity)
  44.   end
  45. end

  46. #==============================================================================
  47. # ■ Scene_Menu
  48. #------------------------------------------------------------------------------
  49. #  处理菜单画面的类。
  50. #==============================================================================

  51. class Scene_Menu
  52.   #--------------------------------------------------------------------------
  53.   # ● 初始化对像
  54.   #     menu_index : 命令光标的初期位置
  55.   #--------------------------------------------------------------------------
  56.   def initialize(menu_index = 0)
  57.     @menu_index = menu_index
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 主处理
  61.   #--------------------------------------------------------------------------
  62.   def main
  63.     # 生成命令窗口
  64.     s1 = $data_system.words.item
  65.     s2 = $data_system.words.skill
  66.     s3 = $data_system.words.equip
  67.     s4 = "状态"
  68.     s5 = "存档"
  69.     s6 = "结束游戏"
  70.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
  71.     @command_window.index = @menu_index
  72.     # 同伴人数为 0 的情况下
  73.     if $game_party.actors.size == 0
  74.       # 物品、特技、装备、状态无效化
  75.       @command_window.disable_item(0)
  76.       @command_window.disable_item(1)
  77.       @command_window.disable_item(2)
  78.       @command_window.disable_item(3)
  79.     end
  80.     # 禁止存档的情况下
  81.     if $game_system.save_disabled
  82.       # 存档无效
  83.       @command_window.disable_item(4)
  84.     end
  85.     # 生成金钱窗口
  86.     @gold_window = Window_Gold.new
  87.     @gold_window.x = 0
  88.     @gold_window.y = 224
  89.     # 生成状态窗口
  90.     @status_window = Window_MenuStatus.new
  91.     @status_window.x = 160
  92.     @status_window.y = 0
  93.     # 执行过渡
  94.     Graphics.transition
  95.     # 主循环
  96.     loop do
  97.       # 刷新游戏画面
  98.       Graphics.update
  99.       # 刷新输入信息
  100.       Input.update
  101.       # 刷新画面
  102.       update
  103.       # 如果切换画面就中断循环
  104.       if $scene != self
  105.         break
  106.       end
  107.     end
  108.     # 准备过渡
  109.     Graphics.freeze
  110.     # 释放窗口
  111.     @command_window.dispose
  112.     @gold_window.dispose
  113.     @status_window.dispose
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 刷新画面
  117.   #--------------------------------------------------------------------------
  118.   def update
  119.     # 刷新窗口
  120.     @command_window.update
  121.     @gold_window.update
  122.     @status_window.update
  123.     # 命令窗口被激活的情况下: 调用 update_command
  124.     if @command_window.active
  125.       update_command
  126.       return
  127.     end
  128.     # 状态窗口被激活的情况下: 调用 update_status
  129.     if @status_window.active
  130.       update_status
  131.       return
  132.     end
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● 刷新画面 (命令窗口被激活的情况下)
  136.   #--------------------------------------------------------------------------
  137.   def update_command
  138.     # 按下 B 键的情况下
  139.     if Input.trigger?(Input::B)
  140.       # 演奏取消 SE
  141.       $game_system.se_play($data_system.cancel_se)
  142.       # 切换的地图画面
  143.       $scene = Scene_Map.new
  144.       return
  145.     end
  146.     # 按下 C 键的情况下
  147.     if Input.trigger?(Input::C)
  148.       # 同伴人数为 0、存档、游戏结束以外的场合
  149.       if $game_party.actors.size == 0 and @command_window.index < 4
  150.         # 演奏冻结 SE
  151.         $game_system.se_play($data_system.buzzer_se)
  152.         return
  153.       end
  154.       # 命令窗口的光标位置分支
  155.       case @command_window.index
  156.       when 0  # 物品
  157.         # 演奏确定 SE
  158.         $game_system.se_play($data_system.decision_se)
  159.         # 切换到物品画面
  160.         $scene = Scene_Item.new
  161.       when 1  # 特技
  162.         # 演奏确定 SE
  163.         $game_system.se_play($data_system.decision_se)
  164.         # 激活状态窗口
  165.         @command_window.active = false
  166.         @status_window.active = true
  167.         @status_window.index = 0
  168.       when 2  # 装备
  169.         # 演奏确定 SE
  170.         $game_system.se_play($data_system.decision_se)
  171.         # 激活状态窗口
  172.         @command_window.active = false
  173.         @status_window.active = true
  174.         @status_window.index = 0
  175.       when 3  # 状态
  176.         # 演奏确定 SE
  177.         $game_system.se_play($data_system.decision_se)
  178.         # 激活状态窗口
  179.         @command_window.active = false
  180.         @status_window.active = true
  181.         @status_window.index = 0
  182.       when 4  # 存档
  183.         # 禁止存档的情况下
  184.         if $game_system.save_disabled
  185.           # 演奏冻结 SE
  186.           $game_system.se_play($data_system.buzzer_se)
  187.           return
  188.         end
  189.         # 演奏确定 SE
  190.         $game_system.se_play($data_system.decision_se)
  191.         # 切换到存档画面
  192.         $scene = Scene_Save.new
  193.       when 5  # 游戏结束
  194.         # 演奏确定 SE
  195.         $game_system.se_play($data_system.decision_se)
  196.         # 切换到游戏结束画面
  197.         $scene = Scene_End.new
  198.       end
  199.       return
  200.     end
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 刷新画面 (状态窗口被激活的情况下)
  204.   #--------------------------------------------------------------------------
  205.   def update_status
  206.     # 按下 B 键的情况下
  207.     if Input.trigger?(Input::B)
  208.       # 演奏取消 SE
  209.       $game_system.se_play($data_system.cancel_se)
  210.       # 激活命令窗口
  211.       @command_window.active = true
  212.       @status_window.active = false
  213.       @status_window.index = -1
  214.       return
  215.     end
  216.     # 按下 C 键的情况下
  217.     if Input.trigger?(Input::C)
  218.       # 命令窗口的光标位置分支
  219.       case @command_window.index
  220.       when 1  # 特技
  221.         # 本角色的行动限制在 2 以上的情况下
  222.         if $game_party.actors[@status_window.index].restriction >= 2
  223.           # 演奏冻结 SE
  224.           $game_system.se_play($data_system.buzzer_se)
  225.           return
  226.         end
  227.         # 演奏确定 SE
  228.         $game_system.se_play($data_system.decision_se)
  229.         # 切换到特技画面
  230.         $scene = Scene_Skill.new(@status_window.index)
  231.       when 2  # 装备
  232.         # 演奏确定 SE
  233.         $game_system.se_play($data_system.decision_se)
  234.         # 切换的装备画面
  235.         $scene = Scene_Equip.new(@status_window.index)
  236.       when 3  # 状态
  237.         # 演奏确定 SE
  238.         $game_system.se_play($data_system.decision_se)
  239.         # 切换到状态画面
  240.         $scene = Scene_Status.new(@status_window.index)
  241.       end
  242.       return
  243.     end
  244.   end
  245. end
复制代码
如果没有修改Scene_Menu的话直接插到Main之前
带★的地方自行修改
效果图[attach]124593[/attach]
作者: 草莓    时间: 2012-8-2 16:28
那把步数和时间窗口什么的去掉咯?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1