| 
 
| 赞 | 4 |  
| VIP | 71 |  
| 好人卡 | 22 |  
| 积分 | 7 |  
| 经验 | 32145 |  
| 最后登录 | 2013-8-9 |  
| 在线时间 | 184 小时 |  
 Lv2.观梦者 天仙 
	梦石0 星屑680 在线时间184 小时注册时间2008-4-15帖子5023 
 | 
| 
本帖最后由 雪流星 于 2010-12-19 15:40 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 雪流星脚本教程第四弹:Window脚本教程一
 
 小幽的VX实用脚本查询手册:
 VX实用脚本查询手册
 
 说明档:
 点此下载
 
 
 教本讲堂再次开讲喽!!
 这次我们来讲Window的绘制
 
 在之前Scene的教程中,我们都是用默认写好的Window来排版和判断而已
 现在开始在Window里面绘制我们想要显示的文字或图片。
 
 新建一个工程,把Window_Gold复制一份,贴在main的前面。
 把refresh的内容删掉。
 进入游戏,开启菜单。
 如果你的金钱窗口不是空的话,那麽肯定是你的错,不是我的错,赶快跪下来向电脑忏悔吧!!!
 
 ![]() 
 现在在refresh里面添加:
 self.contents.draw_text(0, 0, 120, WLH, $game_variables[1]) # 显示一号变量
 
 self.contents.draw_text(x, y, width, height, text, align) 就是我们用来在窗口中绘制文字用的方法
 
 它的参数为:
 x       X座标
 y       Y座标
 width   宽度
 height  高度,一般使用 WLH 就行了
 text    要绘制的文字
 align   对齐方式(0:靠左对齐 1:居中对齐 2:靠右对齐)
 
 好,测试一下:
 
 ![]() 
 金钱窗口显示为0,没错,因为系统变量初始直就是0。可以用Debug修改数值看看。
 
 再来来解释一下每个参数的作用
 XY座标这就不用多说了,先讲高度
 
 WLH 是 Window_Base 里面定义的常量,值为 24。
 这个数值就是字体大小(20)加上边缘各2像素的大小。
 在RMVX中,一个全角字大约占 24X24 像素的大小
 
 所以我们的宽度也要照这个去算
 如果不确定会有几个字,可以用
 self.contents.text_size(显示文字).width
 来计算所需宽度
 
 然後我们现在要在加一句很重要的一句脚本,那就是
 
 self.contents.clear
 
 这句相当於板擦,将「窗口内容」这块「黑板」原先有的字「擦掉」。
 如果没有这句的话,新添加的文字就会覆盖在就有文字的上面。
 如果我们在Window_Gold里面加上
 def update
 refresh
 end
 然後再进入菜单看看的话,就会发现刚才绘制的文字越变越粗。
 如图:
 
 ![]() (update那段只是测试,测试完记得删掉)
 现在虽然看不出效果,但是还是要加上去以策万全。
 
 最後,我们来让这块「黑板」更加多彩多姿
 使用脚本
 self.contents.font.color = text_color(n)
 可以将以下窗口文字的颜色,设定为窗口外观上第n+1个颜色
 为什麽是n+1呢?
 因为这些颜色是从 0 开始算起的
 所以第一个颜色是0号
 
 如果懒得计算第几个颜色的话,也可以用
 self.contents.font.color = Color.new(R, G, B)
 至於R、G、B分别是什麽值,可以用下面这两个软件来计算:
 http://rpg.blue/viewthread.php?tid=108096
 http://rpg.blue/viewthread.php?tid=109833
 
 
 
 其馀显示文字的方法:
 
 角色相关
 绘制角色名称:draw_actor_name(角色, x, y)
 绘制角色职业:draw_actor_class(角色, x, y)
 绘制角色等级:draw_actor_level(角色, x, y)
 绘制角色HP(含血槽):draw_actor_hp(角色, x, y, 宽度)
 绘制角色MP(含气槽):draw_actor_mp(角色, x, y, 宽度)
 绘制角色能力值:draw_actor_parameter(角色, x, y, 类型)
 
 
 参数解释
 角色为$game_actor对象,可以用 $game_party.members[N]来指定队伍中第N号角色
 x, y 为显示座标
 宽度是绘制血/气槽的宽度
 类型使用0-3代表 0:攻击  1: 防御   2:精神力  3:敏捷
 
 
 绘制物品名称:draw_item_name(物品, x, y, enabled)
 绘制金钱数值:draw_currency_value(数值, x, y, 宽度)
 
 
 物品是 BaseItem对象,所以物品、技能、武器、防具皆可使用
 eneabled是指物品是否半透明化显示(代表无法使用)
 数值是指金钱的数值,一般指定 $game_party.gold 即可,当然你也可以使用系统变量
 宽度是绘制金钱数值的宽度
 
 今天就说到这里,下次来谈怎麽在窗口中显示图标。
 
 
 
 
 
 发布页面:http://rpg.blue/web/htm/news1220.htm
 vip+2
 
 [本贴由 66RPG发布员 于 2008-12-20 0:16:26 进行了编辑]
 | 
 |