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

Project1

 找回密码
 注册会员
搜索
查看: 1528|回复: 7
打印 上一主题 下一主题

怎么设置商店背景

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-28
帖子
119
跳转到指定楼层
1
发表于 2008-1-30 01:14:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-28
帖子
119
8
 楼主| 发表于 2008-1-30 04:30:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
7
发表于 2008-1-30 04:27:30 | 只看该作者
  1. #==============================================================================
  2. # ■ Scene_Shop
  3. #------------------------------------------------------------------------------
  4. #  处理商店画面的类。
  5. #==============================================================================

  6. class Scene_Shop
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     背景图像 = Sprite.new
  12.     背景图像.bitmap = RPG::Cache.picture("未命名")
  13.     背景图像.opacity=255
  14.    # 背景图像.z = 100
  15.     # 生成帮助窗口
  16.     @help_window = Window_Help.new
  17.     # 生成指令窗口
  18.     @command_window = Window_ShopCommand.new
  19.     # 生成金钱窗口
  20.     @gold_window = Window_Gold.new
  21.     @gold_window.x = 480
  22.     @gold_window.y = 64
  23.     # 生成时间窗口
  24.     @dummy_window = Window_Base.new(0, 128, 640, 352)
  25.     # 生成购买窗口
  26.     @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
  27.     @buy_window.active = false
  28.     @buy_window.visible = false
  29.     @buy_window.help_window = @help_window
  30.     # 生成卖出窗口
  31.     @sell_window = Window_ShopSell.new
  32.     @sell_window.active = false
  33.     @sell_window.visible = false
  34.     @sell_window.help_window = @help_window
  35.     # 生成数量输入窗口
  36.     @number_window = Window_ShopNumber.new
  37.     @number_window.active = false
  38.     @number_window.visible = false
  39.     # 生成状态窗口
  40.     @status_window = Window_ShopStatus.new
  41.     @status_window.visible = false
  42.     ######################################################################
  43.     @dummy_window.opacity = 0
  44.     @help_window.opacity = 0
  45.     @buy_window.opacity = 0
  46.     @command_window.opacity = 0
  47.     @gold_window.opacity = 0
  48.     @buy_window.opacity = 0
  49.     @sell_window.opacity = 0
  50.     @number_window.opacity = 0
  51.     @status_window.opacity = 0
  52.     #######################################################################
  53.     # 执行过渡
  54.     Graphics.transition
  55.     # 主循环
  56.     loop do
  57.       # 刷新游戏画面
  58.       Graphics.update
  59.       # 刷新输入信息
  60.       Input.update
  61.       # 刷新画面
  62.       update
  63.       # 如果画面切换的话就中断循环
  64.       if $scene != self
  65.         break
  66.       end
  67.     end
  68.     # 准备过渡
  69.     Graphics.freeze
  70.     # 释放窗口
  71.     @help_window.dispose
  72.     @command_window.dispose
  73.     @gold_window.dispose
  74.     @dummy_window.dispose
  75.     @buy_window.dispose
  76.     @sell_window.dispose
  77.     @number_window.dispose
  78.     @status_window.dispose
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 刷新画面
  82.   #--------------------------------------------------------------------------
  83.   def update
  84.     # 刷新窗口
  85.     @help_window.update
  86.     @command_window.update
  87.     @gold_window.update
  88.     @dummy_window.update
  89.     @buy_window.update
  90.     @sell_window.update
  91.     @number_window.update
  92.     @status_window.update
  93.     # 指令窗口激活的情况下: 调用 update_command
  94.     if @command_window.active
  95.       update_command
  96.       return
  97.     end
  98.     # 购买窗口激活的情况下: 调用 update_buy
  99.     if @buy_window.active
  100.       update_buy
  101.       return
  102.     end
  103.     # 卖出窗口激活的情况下: 调用 update_sell
  104.     if @sell_window.active
  105.       update_sell
  106.       return
  107.     end
  108.     # 个数输入窗口激活的情况下: 调用 update_number
  109.     if @number_window.active
  110.       update_number
  111.       return
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 刷新画面 (指令窗口激活的情况下)
  116.   #--------------------------------------------------------------------------
  117.   def update_command
  118.     # 按下 B 键的情况下
  119.     if Input.trigger?(Input::B)
  120.       # 演奏取消 SE
  121.       $game_system.se_play($data_system.cancel_se)
  122.       # 切换到地图画面
  123.       $scene = Scene_Map.new
  124.       return
  125.     end
  126.     # 按下 C 键的情况下
  127.     if Input.trigger?(Input::C)
  128.       # 命令窗口光标位置分支
  129.       case @command_window.index
  130.       when 0  # 购买
  131.         # 演奏确定 SE
  132.         $game_system.se_play($data_system.decision_se)
  133.         # 窗口状态转向购买模式
  134.         @command_window.active = false
  135.         @dummy_window.visible = false
  136.         @buy_window.active = true
  137.         @buy_window.visible = true
  138.         @buy_window.refresh
  139.         @status_window.visible = true
  140.       when 1  # 卖出
  141.         # 演奏确定 SE
  142.         $game_system.se_play($data_system.decision_se)
  143.         # 窗口状态转向卖出模式
  144.         @command_window.active = false
  145.         @dummy_window.visible = false
  146.         @sell_window.active = true
  147.         @sell_window.visible = true
  148.         @sell_window.refresh
  149.       when 2  # 取消
  150.         # 演奏确定 SE
  151.         $game_system.se_play($data_system.decision_se)
  152.         # 切换到地图画面
  153.         $scene = Scene_Map.new
  154.       end
  155.       return
  156.     end
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 刷新画面 (购买窗口激活的情况下)
  160.   #--------------------------------------------------------------------------
  161.   def update_buy
  162.     # 设置状态窗口的物品
  163.     @status_window.item = @buy_window.item
  164.     # 按下 B 键的情况下
  165.     if Input.trigger?(Input::B)
  166.       # 演奏取消 SE
  167.       $game_system.se_play($data_system.cancel_se)
  168.       # 窗口状态转向初期模式
  169.       @command_window.active = true
  170.       @dummy_window.visible = true
  171.       @buy_window.active = false
  172.       @buy_window.visible = false
  173.       @status_window.visible = false
  174.       @status_window.item = nil
  175.       # 删除帮助文本
  176.       @help_window.set_text("")
  177.       return
  178.     end
  179.     # 按下 C 键的情况下
  180.     if Input.trigger?(Input::C)
  181.       # 获取物品
  182.       @item = @buy_window.item
  183.       # 物品无效的情况下、或者价格在所持金以上的情况下
  184.       if @item == nil or @item.price > $game_party.gold
  185.         # 演奏冻结 SE
  186.         $game_system.se_play($data_system.buzzer_se)
  187.         return
  188.       end
  189.       # 获取物品所持数
  190.       case @item
  191.       when RPG::Item
  192.         number = $game_party.item_number(@item.id)
  193.       when RPG::Weapon
  194.         number = $game_party.weapon_number(@item.id)
  195.       when RPG::Armor
  196.         number = $game_party.armor_number(@item.id)
  197.       end
  198.       # 如果已经拥有了 99 个情况下
  199.       if number == 99
  200.         # 演奏冻结 SE
  201.         $game_system.se_play($data_system.buzzer_se)
  202.         return
  203.       end
  204.       # 演奏确定 SE
  205.       $game_system.se_play($data_system.decision_se)
  206.       # 计算可以最多购买的数量
  207.       max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  208.       max = [max, 99 - number].min
  209.       # 窗口状态转向数值输入模式
  210.       @buy_window.active = false
  211.       @buy_window.visible = false
  212.       @number_window.set(@item, max, @item.price)
  213.       @number_window.active = true
  214.       @number_window.visible = true
  215.     end
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 画面更新 (卖出窗口激活的情况下)
  219.   #--------------------------------------------------------------------------
  220.   def update_sell
  221.     # 按下 B 键的情况下
  222.     if Input.trigger?(Input::B)
  223.       # 演奏取消 SE
  224.       $game_system.se_play($data_system.cancel_se)
  225.       # 窗口状态转向初期模式
  226.       @command_window.active = true
  227.       @dummy_window.visible = true
  228.       @sell_window.active = false
  229.       @sell_window.visible = false
  230.       @status_window.item = nil
  231.       # 删除帮助文本
  232.       @help_window.set_text("")
  233.       return
  234.     end
  235.     # 按下 C 键的情况下
  236.     if Input.trigger?(Input::C)
  237.       # 获取物品
  238.       @item = @sell_window.item
  239.       # 设置状态窗口的物品
  240.       @status_window.item = @item
  241.       # 物品无效的情况下、或者价格为 0 (不能卖出) 的情况下
  242.       if @item == nil or @item.price == 0
  243.         # 演奏冻结 SE
  244.         $game_system.se_play($data_system.buzzer_se)
  245.         return
  246.       end
  247.       # 演奏确定 SE
  248.       $game_system.se_play($data_system.decision_se)
  249.       # 获取物品的所持数
  250.       case @item
  251.       when RPG::Item
  252.         number = $game_party.item_number(@item.id)
  253.       when RPG::Weapon
  254.         number = $game_party.weapon_number(@item.id)
  255.       when RPG::Armor
  256.         number = $game_party.armor_number(@item.id)
  257.       end
  258.       # 最大卖出个数 = 物品的所持数
  259.       max = number
  260.       # 窗口状态转向个数输入模式
  261.       @sell_window.active = false
  262.       @sell_window.visible = false
  263.       @number_window.set(@item, max, @item.price / 2)
  264.       @number_window.active = true
  265.       @number_window.visible = true
  266.       @status_window.visible = true
  267.     end
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ● 刷新画面 (个数输入窗口激活的情况下)
  271.   #--------------------------------------------------------------------------
  272.   def update_number
  273.     # 按下 B 键的情况下
  274.     if Input.trigger?(Input::B)
  275.       # 演奏取消 SE
  276.       $game_system.se_play($data_system.cancel_se)
  277.       # 设置个数输入窗口为不活动·非可视状态
  278.       @number_window.active = false
  279.       @number_window.visible = false
  280.       # 命令窗口光标位置分支
  281.       case @command_window.index
  282.       when 0  # 购买
  283.         # 窗口状态转向购买模式
  284.         @buy_window.active = true
  285.         @buy_window.visible = true
  286.       when 1  # 卖出
  287.         # 窗口状态转向卖出模式
  288.         @sell_window.active = true
  289.         @sell_window.visible = true
  290.         @status_window.visible = false
  291.       end
  292.       return
  293.     end
  294.     # 按下 C 键的情况下
  295.     if Input.trigger?(Input::C)
  296.       # 演奏商店 SE
  297.       $game_system.se_play($data_system.shop_se)
  298.       # 设置个数输入窗口为不活动·非可视状态
  299.       @number_window.active = false
  300.       @number_window.visible = false
  301.       # 命令窗口光标位置分支
  302.       case @command_window.index
  303.       when 0  # 购买
  304.         # 购买处理
  305.         $game_party.lose_gold(@number_window.number * @item.price)
  306.         case @item
  307.         when RPG::Item
  308.           $game_party.gain_item(@item.id, @number_window.number)
  309.         when RPG::Weapon
  310.           $game_party.gain_weapon(@item.id, @number_window.number)
  311.         when RPG::Armor
  312.           $game_party.gain_armor(@item.id, @number_window.number)
  313.         end
  314.         # 刷新各窗口
  315.         @gold_window.refresh
  316.         @buy_window.refresh
  317.         @status_window.refresh
  318.         # 窗口状态转向购买模式
  319.         @buy_window.active = true
  320.         @buy_window.visible = true
  321.       when 1  # 卖出
  322.         # 卖出处理
  323.         $game_party.gain_gold(@number_window.number * (@item.price / 2))
  324.         case @item
  325.         when RPG::Item
  326.           $game_party.lose_item(@item.id, @number_window.number)
  327.         when RPG::Weapon
  328.           $game_party.lose_weapon(@item.id, @number_window.number)
  329.         when RPG::Armor
  330.           $game_party.lose_armor(@item.id, @number_window.number)
  331.         end
  332.         # 刷新各窗口
  333.         @gold_window.refresh
  334.         @sell_window.refresh
  335.         @status_window.refresh
  336.         # 窗口状态转向卖出模式
  337.         @sell_window.active = true
  338.         @sell_window.visible = true
  339.         @status_window.visible = false
  340.       end
  341.       return
  342.     end
  343.   end
  344. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-28
帖子
119
6
 楼主| 发表于 2008-1-30 03:43:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
5
发表于 2008-1-30 03:40:20 | 只看该作者
可能是z的问题吧!
加多一句
背景图像.z=9999
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-28
帖子
119
4
 楼主| 发表于 2008-1-30 03:37:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
发表于 2008-1-30 01:58:39 | 只看该作者
Scene_Shop11行,def main下一行插入
  背景图像 = Sprite.new
         背景图像.bitmap = Bitmap.new("Graphics/Pictures/购买菜单")
         背景图像.opacity=255
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-28
帖子
119
2
 楼主| 发表于 2008-1-30 01:51:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-5 10:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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