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

Project1

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

[已经解决] 求解释脚本内容

[复制链接]

Lv2.观梦者

梦石
0
星屑
374
在线时间
55 小时
注册时间
2013-12-6
帖子
30
跳转到指定楼层
1
发表于 2013-12-14 23:43:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 柳妹妹 于 2013-12-15 12:45 编辑

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 描绘项目
  3.   #     index : 项目编号
  4.   #--------------------------------------------------------------------------
  5.   def draw_item(index)
  6.     item = @data[index]
  7.     case item
  8.     when RPG::Item
  9.       number = $game_party.item_number(item.id)
  10.     when RPG::Weapon
  11.       number = $game_party.weapon_number(item.id)
  12.     when RPG::Armor
  13.       number = $game_party.armor_number(item.id)
  14.     end
  15.     if item.is_a?(RPG::Item) and
  16.        $game_party.item_can_use?(item.id)
  17.       self.contents.font.color = Color.new(64,70,124,255)
  18.     else
  19.       self.contents.font.color = Color.new(224,96,112,255)
  20.     end
  21.     x = 4 + index % 3 * (288 + 32)
  22.     y = index / 3 * 32
  23.  
  24.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  25.     self.contents.font.bold = false
  26.     self.contents.fill_rect(rect, Color.new(64,70,124,0))
  27.     #bitmap = RPG::Cache.icon(item.icon_name)
  28.     #self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  29.     opacity = self.contents.font.color == Color.new(224,96,112,255) ? 255 : 128.
  30.     #self.contents.font.color = Color.new(64,70,124,255)
  31.      self.contents.draw_text(x + 4, y, 212, 32, item.name, 0)
  32.      self.contents.draw_text(x + 190, y, 16, 32, "X", 1)
  33.      self.contents.draw_text(x + 210, y, 24, 32, number.to_s, 2)
  34.   end

Lv1.梦旅人

梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
帖子
300
2
发表于 2013-12-15 00:12:01 | 只看该作者
这一段脚本取自 Window_Item
这个方法的用途为:绘制一个道具
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 描绘项目
  3.   #     index : 项目编号
  4.   #--------------------------------------------------------------------------
  5.   def draw_item(index)
  6.     item = @data[index]          # 从data数组里获取第index号数据
  7.     # 判断物品类型,并获得他们的持有数量
  8.     case item                    
  9.     when RPG::Item  # 物品
  10.       number = $game_party.item_number(item.id)
  11.     when RPG::Weapon# 武器
  12.       number = $game_party.weapon_number(item.id)
  13.     when RPG::Armor # 防具
  14.       number = $game_party.armor_number(item.id)
  15.     end
  16.     # 判断能否使用,可使用=>字体颜色正常;不可使用=>字体颜色为无效颜色
  17.     if item.is_a?(RPG::Item) and
  18.        $game_party.item_can_use?(item.id)
  19.       self.contents.font.color = normal_color
  20.     else
  21.       self.contents.font.color = disabled_color
  22.     end
  23.     # 这里是计算实际坐标[相对于游戏窗口]
  24.     x = 4 + index % 2 * (288 + 32)
  25.     y = index / 2 * 32
  26.     # 获取绘制图标的矩形
  27.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  28.     # 填充矩形 不知所意  去掉无妨
  29.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  30.     # 获取图标
  31.     bitmap = RPG::Cache.icon(item.icon_name)
  32.     # 判断不透明度,如果可使用=>完全不透明 如果不可使用=>半透明
  33.     opacity = self.contents.font.color == normal_color ? 255 : 128
  34.     # 绘制图标
  35.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  36.     # 绘制道具名
  37.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  38.     # 绘制一个冒号
  39.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  40.     # 绘制持有数量
  41.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  42.   end


其实很简单,如果说有点复杂,也就是语法掌握不熟练。
需要详细解释的是下面的坐标计算。
RUBY 代码复制
  1. # 这里是计算实际坐标[相对于游戏窗口]
  2.     # 这个坐标用于绘制图标
  3.     # 4=左侧起始间空,index=当前物品顺序ID
  4.     # %2 这个2是代表一行就显示两个,修改这个2可以改变一行显示的数量。
  5.     # *(288+32) 应该为项目宽
  6.     x = 4 + index % 2 * (288 + 32)
  7.     # index/2 这个2和上面的2为相同意义,必须相同。
  8.     # *32为行高
  9.     y = index / 2 * 32

点评

哦,谢谢,懂了!  发表于 2013-12-15 00:14
RPGMaker 脚本/学习交流群:143356012
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 06:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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