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

Project1

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

[已经解决] 这个脚本的refersh都没有调用,他是怎么实现刷新的

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1854
在线时间
395 小时
注册时间
2014-7-7
帖子
264

开拓者

跳转到指定楼层
1
发表于 2018-10-3 17:40:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_ItemList
  4. #------------------------------------------------------------------------------
  5. #  物品画面中,显示持有物品的窗口。
  6. #==============================================================================
  7.  
  8. class Window_ItemList < Window_Selectable
  9.   #--------------------------------------------------------------------------
  10.   # ● 初始化对象
  11.   #--------------------------------------------------------------------------
  12.   def initialize(x, y, width, height)
  13.     super
  14.     @category = :none
  15.     @data = []
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 设置分类
  19.   #--------------------------------------------------------------------------
  20.   def category=(category)
  21.     return if @category == category
  22.     @category = category
  23.     refresh
  24.     self.oy = 0
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 获取列数
  28.   #--------------------------------------------------------------------------
  29.   def col_max
  30.     return 2
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 获取项目数
  34.   #--------------------------------------------------------------------------
  35.   def item_max
  36.     @data ? @data.size : 1
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 获取物品
  40.   #--------------------------------------------------------------------------
  41.   def item
  42.     @data && index >= 0 ? @data[index] : nil
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 获取选择项目的有效状态
  46.   #--------------------------------------------------------------------------
  47.   def current_item_enabled?
  48.     enable?(@data[index])
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 查询列表中是否含有此物品
  52.   #--------------------------------------------------------------------------
  53.   def include?(item)
  54.     case @category
  55.     when :item
  56.       item.is_a?(RPG::Item) && !item.key_item?
  57.     when :weapon
  58.       item.is_a?(RPG::Weapon)
  59.     when :armor
  60.       item.is_a?(RPG::Armor)
  61.     when :key_item
  62.       item.is_a?(RPG::Item) && item.key_item?
  63.     else
  64.       false
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 查询此物品是否可用
  69.   #--------------------------------------------------------------------------
  70.   def enable?(item)
  71.     $game_party.usable?(item)
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 生成物品列表
  75.   #--------------------------------------------------------------------------
  76.   def make_item_list
  77.     @data = $game_party.all_items.select {|item| include?(item) }
  78.     @data.push(nil) if include?(nil)
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 返回上一个选择的位置
  82.   #--------------------------------------------------------------------------
  83.   def select_last
  84.     select(@data.index($game_party.last_item.object) || 0)
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 绘制项目
  88.   #--------------------------------------------------------------------------
  89.   def draw_item(index)
  90.     item = @data[index]
  91.     if item
  92.       rect = item_rect(index)
  93.       rect.width -= 4
  94.       draw_item_name(item, rect.x, rect.y, enable?(item))
  95.       draw_item_number(rect, item)
  96.     end
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● 绘制物品个数
  100.   #--------------------------------------------------------------------------
  101.   def draw_item_number(rect, item)
  102.     draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 更新帮助内容
  106.   #--------------------------------------------------------------------------
  107.   def update_help
  108.     @help_window.set_item(item)
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 刷新
  112.   #--------------------------------------------------------------------------
  113.   def refresh
  114.     make_item_list
  115.     create_contents
  116.     draw_all_items
  117.   end
  118. end
take is cheap

Lv4.逐梦者

梦石
0
星屑
19284
在线时间
3074 小时
注册时间
2013-1-11
帖子
1288
2
发表于 2018-10-3 18:29:25 | 只看该作者
本帖最后由 张咚咚 于 2018-10-3 18:31 编辑

category=方法不是有调用吗

点评

欸.......发多了  发表于 2018-10-3 20:26
但category=找不到调用啊  发表于 2018-10-3 20:26
但是category=找不到他的调用,所以有此一问,不过楼下的 @有丘直方 的方法已经解决了这个问题。还是谢谢了。  发表于 2018-10-3 20:17

评分

参与人数 1星屑 +30 收起 理由
VIPArcher + 30 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1934
在线时间
403 小时
注册时间
2015-8-30
帖子
395
3
发表于 2018-10-3 19:07:32 | 只看该作者
在refresh方法里面加一行
  1. puts caller
复制代码
再运行,你会看到在哪里调用的

点评

谢谢  发表于 2018-10-3 20:18
小仙女一枚~
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1854
在线时间
395 小时
注册时间
2014-7-7
帖子
264

开拓者

4
 楼主| 发表于 2018-10-3 20:22:59 | 只看该作者
本帖最后由 kklt 于 2018-10-3 20:24 编辑
有丘直方 发表于 2018-10-3 19:07
在refresh方法里面加一行再运行,你会看到在哪里调用的


{0063}:23:in `category='
{0062}:36:in `update'
{0062}:52:in `item_window='
{0106}:40:in `create_item_window'
{0106}:16:in `start'
{0100}:13:in `main'
{0125}:17:in `run_debug'
{0125}:30:in `block in <main>'
:1:in `block in rgss_main'
:1:in `loop'
:1:in `rgss_main'
{0125}:30:in `<main>'
ruby:in `eval'


点评

搜 .category  发表于 2018-10-3 20:29
全局无法查找到其他的category=,所以东西就是在内部调用的喽  发表于 2018-10-3 20:24
take is cheap
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1854
在线时间
395 小时
注册时间
2014-7-7
帖子
264

开拓者

5
 楼主| 发表于 2018-10-3 20:43:44 | 只看该作者
张咚咚 发表于 2018-10-3 18:29
category=方法不是有调用吗




"Ruby中允许方法以”=“结尾。以等号结尾的方法有些特殊,Ruby允许以赋值操作的语法来调用它们。"

看来还是我才疏学浅...
感谢张咚咚(真是好名字)
take is cheap
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-25 17:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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