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

Project1

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

[已经解决] RMXP字体的阴影问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
85
在线时间
210 小时
注册时间
2013-7-26
帖子
346
跳转到指定楼层
1
发表于 2014-11-1 19:49:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我使用了字体的阴影脚本,如何在draw_text中使用一个参数即可以不显示阴影
@xxx.draw_text(x, y, width, height, text)
比如像这样 @xxx.draw_text(x, y, width, height, text,false)即可不显示阴影,默认显示阴影@RyanBern
{:2_264:} 拜托了


RUBY 代码复制
  1. #======================================================================
  2. # 脚本来自[url]www.66rpg.com[/url],使用请保留此信息
  3. # 作者:SailCat;升级:柳柳;最后升级日期:2006年4月30日
  4. #======================================================================
  5. class Bitmap
  6.   unless $OK
  7.     alias sailcat_draw_text draw_text
  8.     def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0, p7 = 3, p8 = nil)
  9.       case p1
  10.       when Numeric
  11.         x = p1
  12.         y = p2
  13.         width = p3
  14.         height = p4
  15.         text = p5
  16.         align = p6
  17.         shadow_direction = p7
  18.         shadow_color = p8
  19.         if shadow_color.nil?
  20.           shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
  21.         end
  22.       when Rect
  23.         x = p1.x
  24.         y = p1.y
  25.         width = p1.width
  26.         height = p1.height
  27.         text = p2
  28.         align = p3
  29.         shadow_direction = p4
  30.         shadow_color = p5
  31.         if shadow_color.nil?
  32.           shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
  33.         end
  34.       end
  35.       color_temp = self.font.color.clone
  36.       if shadow_direction != 0
  37.         self.font.color = shadow_color
  38.         case shadow_direction
  39.         when 1
  40.           sailcat_draw_text(x-1, y+1, width, height, text, align)
  41.         when 3
  42.           sailcat_draw_text(x+1, y+1, width, height, text, align)
  43.         when 7
  44.           sailcat_draw_text(x-1, y-1, width, height, text, align)
  45.         when 9
  46.           sailcat_draw_text(x+1, y-1, width, height, text, align)
  47.         end
  48.         self.font.color = color_temp
  49.       end
  50.       $OK = true
  51.       sailcat_draw_text(x, y, width, height, text, align)
  52.     end
  53.   end
  54. end

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-11-1 20:37:16 | 只看该作者
  1. #======================================================================
  2. # 脚本来自[url]www.66rpg.com[/url],使用请保留此信息
  3. # 作者:SailCat;升级:柳柳;最后升级日期:2006年4月30日
  4. #======================================================================
  5. # 使用 shadow_draw_text 描绘影子字 使用方法同draw_text
  6. class Bitmap
  7.   #unless $OK
  8.   #  alias sailcat_draw_text draw_text
  9.     def shadow_draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0, p7 = 3, p8 = nil)
  10.       case p1
  11.       when Numeric
  12.         x = p1
  13.         y = p2
  14.         width = p3
  15.         height = p4
  16.         text = p5
  17.         align = p6
  18.         shadow_direction = p7
  19.         shadow_color = p8
  20.         if shadow_color.nil?
  21.           shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
  22.         end
  23.       when Rect
  24.         x = p1.x
  25.         y = p1.y
  26.         width = p1.width
  27.         height = p1.height
  28.         text = p2
  29.         align = p3
  30.         shadow_direction = p4
  31.         shadow_color = p5
  32.         if shadow_color.nil?
  33.           shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
  34.         end
  35.       end
  36.       color_temp = self.font.color.clone
  37.       if shadow_direction != 0
  38.         self.font.color = shadow_color
  39.         case shadow_direction
  40.         when 1
  41.           draw_text(x-1, y+1, width, height, text, align)
  42.         when 3
  43.           draw_text(x+1, y+1, width, height, text, align)
  44.         when 7
  45.           draw_text(x-1, y-1, width, height, text, align)
  46.         when 9
  47.           draw_text(x+1, y-1, width, height, text, align)
  48.         end
  49.         self.font.color = color_temp
  50.       end
  51.       #$OK = true
  52.       draw_text(x, y, width, height, text, align)
  53.     end
  54.   #end
  55. end
复制代码

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

3
发表于 2014-11-1 20:56:53 | 只看该作者
原来的方法draw_text已经更名为sailcat_draw_text了,所以想要使用不加阴影的使用sailcat_draw_cat即可。如果改成参数的,似乎会有些困难。

点评

解决了 谢谢  发表于 2014-11-2 11:46
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9402
在线时间
2749 小时
注册时间
2008-9-5
帖子
3542

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

4
发表于 2014-11-2 00:14:24 | 只看该作者
本帖最后由 cinderelmini 于 2014-11-2 00:22 编辑
  1. #======================================================================
  2. # 脚本来自[url]www.66rpg.com[/url],使用请保留此信息
  3. # 作者:SailCat;升级:柳柳;最后升级日期:2006年4月30日
  4. #======================================================================
  5. class Bitmap
  6.   unless $OK
  7.     alias sailcat_draw_text draw_text
  8.     def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0, p9 = false, p7 = 3, p8 = nil)
  9.       case p1
  10.       when Numeric
  11.         x = p1
  12.         y = p2
  13.         width = p3
  14.         height = p4
  15.         text = p5
  16.         align = p6
  17.         shadow_direction = p7
  18.         shadow_color = p8
  19.         if shadow_color.nil?
  20.           shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
  21.         end
  22.       when Rect
  23.         x = p1.x
  24.         y = p1.y
  25.         width = p1.width
  26.         height = p1.height
  27.         text = p2
  28.         align = p3
  29.         shadow_direction = p4
  30.         shadow_color = p5
  31.         if shadow_color.nil?
  32.           shadow_color = Color.new(0, 0, 0, self.font.color.alpha * 0.99)
  33.         end
  34.       end
  35.       if p9
  36.         sailcat_draw_text(x, y, width, height, text, align)
  37.         return
  38.       end
  39.       color_temp = self.font.color.clone
  40.       if shadow_direction != 0
  41.         self.font.color = shadow_color
  42.         case shadow_direction
  43.         when 1
  44.           sailcat_draw_text(x-1, y+1, width, height, text, align)
  45.         when 3
  46.           sailcat_draw_text(x+1, y+1, width, height, text, align)
  47.         when 7
  48.           sailcat_draw_text(x-1, y-1, width, height, text, align)
  49.         when 9
  50.           sailcat_draw_text(x+1, y-1, width, height, text, align)
  51.         end
  52.         self.font.color = color_temp
  53.       end
  54.       $OK = true
  55.       sailcat_draw_text(x, y, width, height, text, align)
  56.     end
  57.   end
  58. end
复制代码
把参数加上去了,
使用的话,比如
  1. self.contents.draw_text(x, y, width, height, text, align, 是否影子, 影子方向, 影子颜色)
复制代码
注:是否影子就是true/false,影子方向参考数字小键盘填对应数字,颜色填nil就是默认黑色(后面两者可不填)。
但是,改影子是否可见的话,必须填对齐(0/1/2→左/中/右)。

点评

这个我试过 太麻烦了。。  发表于 2014-11-2 11:47
↓因为突然想明白了顺序其实一开始就可以放到前面来所以下面这句无视掉。  发表于 2014-11-2 00:20
PS:如果稍微会脚本的话,可以试试给后面3个参数换个位置。  发表于 2014-11-2 00:15

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-18 01:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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