赞 | 3 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 1600 |
最后登录 | 2020-5-29 |
在线时间 | 413 小时 |
Lv1.梦旅人 ACG宅
- 梦石
- 0
- 星屑
- 72
- 在线时间
- 413 小时
- 注册时间
- 2008-10-1
- 帖子
- 5595
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 枫起 于 2011-7-16 23:07 编辑
原版本321行。注释后的版本总共640行- -可见该版本有多么的啰嗦- -
本版本坑了N个月后。。。终于发布了。。。当然,我水平有限,必然有很多错误,希望大家能够指出。
该教程是给新手学RGSS看的,这样有些简单的就可以不用查手册了。查手册的话也可以提高效率和记忆效率。
#CY 是我写的注释的说明,与自带的区分。
- #==============================================================================
- # ■ Window_Base
- #------------------------------------------------------------------------------
- # 游戏中全部窗口的超级类。
- #==============================================================================
- class Window_Base < Window #定义Window_Base类为Window类的子类。
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # x : 窗口的 X 坐标
- # y : 窗口的 Y 坐标
- # width : 窗口的宽
- # height : 窗口的宽
- #--------------------------------------------------------------------------
- def initialize(x, y, width, height)
- #CY 类Window_Base的名为initialize的方法定义。
-
- super()
- #CY 重载父类同名的方法。
-
- @windowskin_name = $game_system.windowskin_name
- #CY 先调用$game_system的windowskin_name来获取定义的窗体素材,
- #CY 并且赋给实变量@windowskin_name。
-
- self.windowskin = RPG::Cache.windowskin(@windowskin_name)
- #CY 对RGSS内部模块的RPG::Cache调用windowskin方法,也就是从高速缓存中取得
- #CY 窗口皮肤图像,并调用 Window 类的 windowskin= 方法来赋值。
-
- #CY-------------------以下都为执行他们本身,然后将值赋给它们---------------
- self.x = x
- self.y = y
- self.width = width
- self.height = height
- self.z = 100
- end
- #CY 结束此次定义。
-
- #--------------------------------------------------------------------------
- # ● 释放
- #--------------------------------------------------------------------------
- def dispose
- #CY 定义一个名为dispose的方法。
-
- if self.contents != nil
- # 如果窗口的内容不是空(也就是说窗口有内容)
- #CY 执行contents这个方法本身,如果执行该方法返回的值不等于nil,则执行下一步,
- #CY 否则执行父类的同名方法dispose。
- #备注:contents该方法在F1的RGSS参考——游戏库——RGSS内部类里的Window里面。
-
- self.contents.dispose
- #CY 如果上一步条件满足,则对contents(作为窗口内容显示的位图)
- #CY 执行dispose(释放窗口)方法。
-
- end
- super
- #CY 如果不满足条件,则调用父类的同名方法dispose(释放窗口)。
-
- end
-
- #--------------------------------------------------------------------------
- # ● 获取文字色
- # n : 文字色编号 (0~7)
- #--------------------------------------------------------------------------
- def text_color(n)
- #CY 定义一个名为text_color的方法。
-
- case n
- #CY 执行case循环体
-
- when 0
- #CY 当n=1时,执行下一句,否则继续往下对比。
-
- return Color.new(255, 255, 255, 255)
- #CY 返回执行建立Color的实例的值,内部数值分别是RGB和透明度。
-
- #CY 以下都可以依次类推。
- when 1
- return Color.new(128, 128, 255, 255)
- when 2
- return Color.new(255, 128, 128, 255)
- when 3
- return Color.new(128, 255, 128, 255)
- when 4
- return Color.new(128, 255, 255, 255)
- when 5
- return Color.new(255, 128, 255, 255)
- when 6
- return Color.new(255, 255, 128, 255)
- when 7
- return Color.new(192, 192, 192, 255)
- else
- normal_color
- end
- end
- #--------------------------------------------------------------------------
- # ● 获取普通文字色
- #--------------------------------------------------------------------------
- def normal_color
- #CY 定义一个名为normal_color的方法。
-
- return Color.new(255, 255, 255, 255)
- end
- #CY 可以看出。该方法的值和上面的循环体case中n=0的值相等。
- #CY 等等!你没什么要问的么?真的没有?难道你不想知道Color这个类里的那四个
- #CY 参数的意义么?想知道?人家现在才不会告诉你呢!继续往下看才能知道哦!
-
- #--------------------------------------------------------------------------
- # ● 获取无效文字色
- #--------------------------------------------------------------------------
- def disabled_color
- #CY 定义一个名为disabled_color的方法。
-
- return Color.new(255, 255, 255, 128)
- #CY 需要注意的是最后一个值为128。
-
- end
- #CY 可以看到,三原色RGB的值都没变,最后的透明度的值约为255的一半,
- #CY 所以该函数实际应用时字体相对于255的字体来说是半透明的。
-
- #--------------------------------------------------------------------------
- # ● 获取系统文字色
- #--------------------------------------------------------------------------
- def system_color
- #CY 定义一个名为system_color的方法。
-
- return Color.new(192, 224, 255, 255)
- end
- #--------------------------------------------------------------------------
- # ● 获取危机文字色
- #--------------------------------------------------------------------------
- def crisis_color
- #CY 定义一个名为crisis_color的方法。
-
- return Color.new(255, 255, 64, 255)
- end
- #--------------------------------------------------------------------------
- # ● 获取战斗不能文字色
- #--------------------------------------------------------------------------
- def knockout_color
- #CY 定义一个名为knockout_color的方法。
-
- return Color.new(255, 64, 0)
-
- #CY 啊嘞嘞?为什么这个只有3个参数?
-
- end
- #CY 好吧,现在是福利时间,还记得上面我说的那个Color类里面参数的含义么?
- #CY 现在该揭晓了,让我们一起来看看吧!你现在要做的就是翻开我们的参考书。
- #CY 阿勒?参考书是什么?能不能吃?好不好吃?吃你妹啊~F1啦!!!F1!!!
- #CY OK,下面大家打开RGSS参考——游戏库——RGSS内部类——Color。仔细看看吧!
- #CY 注意这一句:Color.new(red, green, blue,[alpha])
- #CY 生成 Color 对象。如省略 alpha 的话则默认为 255。
- #CY 看到没有?也就是说第四个参数[alpha](透明度)是可以省略的,只不过省略
- #CY 后Color.new(red, green, blue)等同于Color.new(red, green, blue,255)。
- #CY 也就是没有透明效果了哦!
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- #CY 定义一个名为update的方法。
- super
- #CY 调用父类的同名方法(update)重载。
- # 如果窗口的外观被变更了、再设置
-
- if $game_system.windowskin_name != @windowskin_name
- #CY 如果执行全局变量$game_system的windowskin_name方法的值不等于实变量
- #CY @windowskin_name的值,则执行下一步。
-
- @windowskin_name = $game_system.windowskin_name
- #CY 将执行全局变量$game_system的windowskin_name方法的值赋给实变量
- #CY @windowskin_name。
-
- self.windowskin = RPG::Cache.windowskin(@windowskin_name)
- #CY 看不懂么?魂淡!你有没有看前面啊!!!人家写注释可是很辛苦的!!!往上
- #CY 忘记了的统统给我抬头90°向上看第21行,然后嘴里默念komenasai 100遍!
- #CY PS:傲娇了。。。PIA~然后就是上次写到这出了个非常杯具的事,于是我这是第
- #CY 二遍写这玩意了%>_<%。
- end
- end
- #--------------------------------------------------------------------------
- # ● 图形的描绘
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_actor_graphic(actor, x, y)
- #CY 定义名为draw_actor_graphic的方法。
-
- bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
- #CY 对RPG::Cache模块执行名为character的方法,该方法需要2个值。这两个值分别
- #CY 是对actor类使用character_name方法(角色文件名)和对actor类使用character
- #CY _hue(角色色相)。取得角色图像。然后将值赋给变量bitmap。
- #CY character方法的定义请看RGSS参考——游戏库——RGSS内部类的RPG::Cache模块。
- #CY 现在不需要你去记忆RPG::Cache模块的内容哦,了解下即可。
-
- cw = bitmap.width / 4
- #CY 对变量bitmap使用width(取得位图的宽)方法,并且将值除以4,然后赋给变量cw。
- #CY bitmap的方法在RGSS参考——游戏库——RGSS内部类的Bitmap里面。
-
- ch = bitmap.height / 4
- #CY 对变量bitmap使用height(取得位图的高)方法,并且将值除以4,然后赋给变量ch。
-
- src_rect = Rect.new(0, 0, cw, ch)
- #CY 新建Rect的实例,内部参数为(0, 0, cw, ch),并将该实例的值赋给变量src_rect。
- #CY Rect的方法在RGSS参考——游戏库——RGSS内部类的Rect里面。
- #CY 神马?你问我x和y的意思?继续抬头90°看141行的注释。。。
-
- self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
- #CY 对contents属性执行blt方法,并且执行它本身。
- #CY 不懂?不动就对了!我还没给出附录呢,你怎么能懂呢!
-
- #CY contents属性:作为窗口内容显示的位图(Bitmap)。
-
- #CY blt(x, y, src_bitmap, src_rect[, opacity]) 方法:
- #CY 传送 src_bitmap 的矩形 src_rect(Rect)到该位图的座标(x,y)。
- #CY opacity 指定其不透明度,范围为 0 ~ 255。
- #CY contents属性在RGSS参考——游戏库——RGSS内部类的Window里。
- #CY blt方法在RGSS参考——游戏库——RGSS内部类的Bitmap里。
- end
- #--------------------------------------------------------------------------
- # ● 名称的描绘
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_actor_name(actor, x, y) #CY 定义名为draw_actor_name的方法。
- self.contents.font.color = normal_color
- #CY 对contents执行font类的color(字体的颜色)属性,并将前面定义的normal_color
- #CY 方法的值赋给它,并且执行它本身。
- self.contents.draw_text(x, y, 120, 32, actor.name)
- #CY 对contents执行Bitmap类的draw_text(在该位图的矩形或 中描绘字符串 str属性)
- #CY 并执行它本身。
-
- #CY 将窗口的内容显示字体的颜色设定成 normal_color 返回的颜色
- #CY self 表示的是窗口自己本身, 也就是 WIndow_Base 什么的
-
- #CY 参考:RGSS内部类的Font类和Bitmap类。
- #CY PS:同样是调用不同的类的方法,为什么font类要多加个.fot呢?而Bitmap就不要?
- #CY 大家可以看contents属性的后缀,注意,有个(Bitmap)。
- #===========================================================================
-
- end
- #--------------------------------------------------------------------------
- # ● 职业的描绘
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_actor_class(actor, x, y) #CY 定义名为draw_actor_name的方法。
-
- #CY 以下参考刚才讲过的前一个例子,也就是第180行。
- self.contents.font.color = normal_color
- self.contents.draw_text(x, y, 236, 32, actor.class_name)
- end
- #--------------------------------------------------------------------------
- # ● 等级的描绘
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_actor_level(actor, x, y) #CY 定义名为draw_actor_name的方法。
- #CY---------------------以下皆参考第180行----------------------------------
- self.contents.font.color = system_color
- self.contents.draw_text(x, y, 32, 32, "Lv")
- self.contents.font.color = normal_color
- self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
- #CY 大家是否对上一行的最后一个参数2产生了疑惑呢?有的话就去查查我们的参考书
- #CY 吧。也可以看下面的注释:
-
- #CY draw_text(x, y, width, height, str,[align])
- #CY 水平方向默认为左对齐,但是当 align 指定为 1 时为居中对齐,指定为 2 时为
- #CY 右对齐。垂直方向则总为居中对齐。
-
- #CY 看到了么?aligh的值是与对齐方法对应的哦。
- end
- #--------------------------------------------------------------------------
- # ● 生成描绘用的状态字符串
- # actor : 角色
- # width : 描画目标的宽度
- # need_normal : [正常] 是否为必须 (true / false)
- #--------------------------------------------------------------------------
- def make_battler_state_text(battler, width, need_normal)
- #CY 定义名为make_battler_state_text的方法。
-
- # 获取括号的宽
- brackets_width = self.contents.text_size("[]").width
- #CY 先执行contents(作为窗口内容显示的位图),再对其调用text_size方法(取得
- #CY 以draw_text方法描绘字符串 str 的矩形(Rect)。但是,不包含斜体的部分。)
- #CY 然后再对其使用Rect类的width(矩形的宽度)方法,然后再执行它本身,最后再
- #CY 把值赋给变量brackets_width。
-
- # 生成状态名字符串
- text = ""
- #CY 初始化text变量等于一个空的字符串。
-
- for i in battler.states
- #CY 先计算表达式battler(battler为函数形参).states,然后针对该对象的每个单
- #CY 元,执行for循环。
-
- if $data_states[i].rating >= 1
- #CY 如果对全局变量$data_states[i]调用名为rating的方法。如果值大于等于1,则执
- #CY 行下一句。
- #CY 注释:rating为取得优先级。
-
- if text == ""
- #CY 如果text的值等于空的字符串。则执行下一句。
-
- text = $data_states[i].name
- #CY 对全局变量$data_states [i]调用name方法,并且把值赋给变量text。
-
- else
- #CY 否则,执行下列语句(即$data_stares[i].rating的值小于1)。
-
- new_text = text + "/" + $data_states[i].name
- #CY 将变量text的值加上字符串“/”加上对$data_stares[i]执行name方法的值,
- #CY 最后赋值给new_text。
-
- text_width = self.contents.text_size(new_text).width
- #CY 执行contents它本身,对其执行text_size(new_text),再对其执行width,然后
- #CY 赋值给变量text_width。
-
- if text_width > width - brackets_width
- #CY 如果text_width的值大于变量width(形参)减去变量brackets_width的值。
-
- break
- #CY 跳出循环。
- end
- text = new_text
- #CY 将new_text的值赋给text。
- end
- end
- end
-
- # 状态名空的字符串是 "[正常]" 的情况下
- if text == ""
- #CY 如果text的值为nil(""相当于没有字符串)
-
- if need_normal
- #CY 如果need_normal(形参)的值不为false或者nil的话则执行下一个语句。
-
- text = "[正常]"
- #CY 将字符串[正常]赋值给text。
-
- end
- else
- # 加上括号
- text = "[" + text + "]"
- #CY 将字符串“[”加上变量text的值再加上“]”赋值给text。
-
- end
- # 返回完成后的文字类
- return text
- #CY 返回text的值
- end
- #--------------------------------------------------------------------------
- # ● 描绘状态
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- # width : 描画目标的宽
- #--------------------------------------------------------------------------
- def draw_actor_state(actor, x, y, width = 120)
- #CY 定义一个名为draw_actor_state的方法。分别有形参actor,x,y,width(赋初
- #CY 值等于120)。
-
- text = make_battler_state_text(actor, width, true)
- #CY 将方法make_battler_state_text的值赋给变量text。
-
- self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
- #CY 执行contents本身,然后对其使用font,再对其使用color,最后把actor.hp的值
- #CY 赋值给它。
-
- #CY 对actor使用hp方法,如果值等于0的话,则执行knockout_color(战斗不能的颜色)
- #CY 。否则执行normal_color(普通战斗的颜色)。
-
- self.contents.draw_text(x, y, width, 32, text)
- #CY 执行contents它本身,再对其执行draw_text(在contents位图显示字符串text。
- #CY 高度指定为32。
-
- end
- #--------------------------------------------------------------------------
- # ● 描绘 EXP
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_actor_exp(actor, x, y)
- #CY 定义名为draw_actor_exp的方法。
-
- self.contents.font.color = system_color
- #CY 执行contents本身,然后对其使用font,再对其使用color,最后把system_color
- #CY 的值赋值给它。
-
- self.contents.draw_text(x, y, 24, 32, "E")
- #CY 执行contents它本身,再对其执行draw_text(在contents位图显示字符串E。
- #CY 宽度指定为24,宽度指定为32。
-
- self.contents.font.color = normal_color
- #CY 执行contents本身,然后对其使用font,再对其使用color,最后把normal_color
- #CY 的值赋值给它。
-
- self.contents.draw_text(x + 24, y, 84, 32, actor.exp_s, 2)
- #CY 执行contents它本身,再对其执行draw_text(在x的基础上加24,宽度指定为84,
- #CY 高度指定为32。对actor执行exp_s(获取经验值)。对齐方式为右对齐。
- #CY 注:exp_s在脚本的Game_Actor中。
-
- self.contents.draw_text(x + 108, y, 12, 32, "/", 1)
- #CY 执行contents它本身,再对其执行draw_text(在x的基础上加108,宽度指定为12,
- #CY 高度指定为32。显示字符串“/”。对齐方式为居中对齐。
-
- self.contents.draw_text(x + 120, y, 84, 32, actor.next_exp_s)
- #CY 执行contents它本身,再对其执行draw_text(在x的基础上加120,宽度指定为84,
- #CY 高度指定为32。显示字符串“/”。对齐方式为默认(左对齐)。
-
- end
- #--------------------------------------------------------------------------
- # ● 描绘 HP
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- # width : 描画目标的宽
- #--------------------------------------------------------------------------
- def draw_actor_hp(actor, x, y, width = 144)
- #CY 定义名为draw_actor_hp的方法
-
- # 描绘字符串 "HP"
- self.contents.font.color = system_color
- #CY 执行contents本身,然后对其使用font,再对其使用color,最后把system_color
- #CY 的值赋值给它。
-
- self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
- #CY 执行contents它本身,再对其执行draw_text(宽度指定为84,高度指定为32。
- #CY 显示的字符串的值为对全局变量$data_system使用words(游戏术语)再对其使用
- #CY hp(取得血量)。
-
- # 计算描绘 MaxHP 所需的空间
- if width - 32 >= 108
- #CY 如果width减去32大于等于108,则执行下一句。
-
- hp_x = x + width - 108
- #CY 将x加上width的值减去108的值赋给hp_x。
- flag = true
- #CY 将true赋值给flag。
-
- elsif width - 32 >= 48
- hp_x = x + width - 48
- flag = false
- #CY 同上一步。
-
- end
- # 描绘 HP
- self.contents.font.color = actor.hp == 0 ? knockout_color :
- actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
- #CY 执行contents本身,然后对其执行font再对其执行color,最后将对actor执行hp的
- #CY 值赋给它。如果该表达式的值等于0的话,则该表达式为knockout_color,否者则为
- #CY actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color这一步的值。
-
- #CY actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color解读:
- #CY 如果对actor使用maxhp然后再除以4的值大于对actor使用hp的值的话,则该表达式
- #CY 等于crisis_color否则则为normal_color。
-
- self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
- #CY 执行contents它本身,再对其执行draw_text(宽度指定为48,高度指定为32。
- #CY 对actor执行hp(获取血量)再对其执行to_s(转换为字符串并且输出)。
- #CY 对齐方式为右对齐。
-
- # 描绘 MaxHP
- if flag
- #CY 如果flag不等于false或者nil,则执行下一步。
-
- self.contents.font.color = normal_color
- #CY 执行contents本身,然后对其使用font,再对其使用color,最后把normal_color
- #CY 的值赋值给它。
-
- self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
- #CY 执行contents它本身,再对其执行draw_text(在hp_x的基础上加48,宽度指定为12
- #CY ,高度指定为32。显示字符串“/”。对齐方式为居中对齐。
-
- self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
- #CY 执行contents它本身,再对其执行draw_text(在hp_x的基础上加60,宽度指定为48
- #CY ,高度指定为32。对actor执行maxhp(获取HP最大值)再对其执行to_s(将对象转
- #CY 换为字符串并且输出)
- #CY 注释:maxhp:在脚本Game_Battler 1中定义。
-
- end
-
- end
- #--------------------------------------------------------------------------
- # ● 描绘 SP
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- # width : 描画目标的宽
- #--------------------------------------------------------------------------
- def draw_actor_sp(actor, x, y, width = 144)
- #CY 定义名为draw_actor_sp的方法。
-
- # 描绘字符串 "SP"
- self.contents.font.color = system_color
- #CY 执行contents本身,然后对其使用font,再对其使用color,最后把system_color
- #CY 的值赋值给它。
-
- self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
- #CY 执行contents它本身,再对其执行draw_text(宽度指定为32,高度指定为32。
- #CY 显示的字符串的值为对全局变量$data_system使用words(游戏术语)再对其使用
- #CY sp(取得sp(魔法值))。
-
- #CY ---------------------------以下类似上面定义的HP-------------------------
-
- # 计算描绘 MaxSP 所需的空间
- if width - 32 >= 108
- sp_x = x + width - 108
- flag = true
- elsif width - 32 >= 48
- sp_x = x + width - 48
- flag = false
- end
-
- # 描绘 SP
- self.contents.font.color = actor.sp == 0 ? knockout_color :
- actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
- self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
- # 描绘 MaxSP
- if flag
- self.contents.font.color = normal_color
- self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
- self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
- end
- end
- #--------------------------------------------------------------------------
- # ● 描绘能力值
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- # type : 能力值种类 (0~6)
- #--------------------------------------------------------------------------
- def draw_actor_parameter(actor, x, y, type)
- #CY 定义名为draw_actor_parameter的方法。
-
- case type
- #CY 执行case语句。判断值为type。
-
- when 0
- #CY 如果type等于0。
-
- parameter_name = $data_system.words.atk
- #CY 对全局变量$data_system执行words(游戏用语)的atk(攻击力)属性。然后赋值
- #CY 给parameter_name。
-
- parameter_value = actor.atk
- #CY 对actor执行atk(攻击力),然后赋值给parameter_value
-
- #CY -------------------------------以下同上--------------------------------
- when 1
- parameter_name = $data_system.words.pdef
- #CY pdef(物理防御)
- parameter_value = actor.pdef
- when 2
- parameter_name = $data_system.words.mdef
- #CY mdef(魔法防御)
- parameter_value = actor.mdef
- when 3
- parameter_name = $data_system.words.str
- #CY str(力量)
- parameter_value = actor.str
- when 4
- parameter_name = $data_system.words.dex
- #CY dex(灵巧)
- parameter_value = actor.dex
- when 5
- parameter_name = $data_system.words.agi
- #CY agi(速度)
- parameter_value = actor.agi
- when 6
- parameter_name = $data_system.words.int
- #CY int(魔力)
- parameter_value = actor.int
- end
-
- self.contents.font.color = system_color
- #CY 执行contents本身,然后对其执行font,再对其执行color。最后把system_color的
- #CY 值赋给它。
-
- self.contents.draw_text(x, y, 120, 32, parameter_name)
- #CY 执行contents本身,然后对其执行draw_text(宽度指定为120,高度指定为32。对
- #CY 齐方式默认左对齐。
-
- self.contents.font.color = normal_color
- #CY 执行contents本身,然后对其执行font,再对其执行color。最后把normal_color的
- #CY 值赋给它。
-
- self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
- #CY 执行contents本身,然后对其执行draw_text(x坐标的值在给定的基础上加120。宽
- #CY 度指定为36,高度指定为32。对齐方式为右对齐。
- #CY to_s为将对象转换为字符串并且返回该字符串。
-
- end
- #--------------------------------------------------------------------------
- # ● 描绘物品名
- # item : 物品
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_item_name(item, x, y)
- #CY 定义名为draw_item_name的方法
- if item == nil
- #CY 如果item的值等于nil。
-
- return
- end
-
- bitmap = RPG::Cache.icon(item.icon_name)
- #CY 执行RPG::Cache.icon。取得图标的图像(形参为对item执行icon_name(取得图标
- #CY 图像名称)。并且将值赋给bitmap。
- self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
- #CY 执行contents本身,然后对contents执行blt。
-
- #CY ---------------------------------注释-----------------------------------
- #CY blt(x, y, src_bitmap, src_rect[, opacity])
- #CY 传送 src_bitmap 的矩形 src_rect(Rect)到该位图的座标(x,y)。
- #CY opacity 指定其不透明度,范围为 0 ~ 255。
-
- #CY Rect.new(x, y, width, height)
- #CY 生成 Rect 对象。
- #CY ---------------------------------注释-----------------------------------
- self.contents.font.color = normal_color
- #CY 执行contents本身,然后对其执行font,再对其执行color。最后把normal_color的
- #CY 值赋给它。
- self.contents.draw_text(x + 28, y, 212, 32, item.name)
- #CY 执行contents本身,在对其执行draw_text方法。
- end
- end
复制代码 |
评分
-
查看全部评分
|