幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1623|回复: 5

[RMVX] 关于字体描边

[复制链接]

845

主题

1万

帖子

214748万

积分

版主

脑残中……

Rank: 7Rank: 7Rank: 7

积分
2147483647

声命组金赏

发表于 2006-10-25 13:40:00 | 显示全部楼层 |阅读模式
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/  ◆縁取り・影文字描画 - KGC_FrameShadowText◆
  3. #_/----------------------------------------------------------------------------
  4. #_/ draw_text を強化し、縁取りや影文字の描画機能を追加します。
  5. #_/  Provides functions to draw texts which framed or dropped shadow.
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  7. =begin
  8. ┏━━━━ 搭載メソッド - Methods ━━━━━━━━━━━━━━━━━━━━━━━
  9. ┠─── Class - Bitmap ────────────────────────────
  10. ┃ draw_frame_text(x, y, width, height, string[, align, frame_color])
  11. ┃ draw_frame_text(rect, string[, align, frame_color])
  12. ┃   x, y          : 描画先座標    [Integer]
  13. ┃                   Destination.
  14. ┃   width, height : 描画サイズ    [Integer]
  15. ┃                   Size.
  16. ┃   rect          : 描画領域      [Rect]
  17. ┃                   Rectangle.
  18. ┃   string        : 描画文字列    [String]
  19. ┃                   Output text.
  20. ┃   align         : 文字整列形式  [Integer]
  21. ┃                   Alignment.
  22. ┃   frame_color   : 縁取り色      [Color]
  23. ┃                   Frame color.
  24. ┃ 周りを frame_color で縁取りした文字列を描画します。
  25. ┃ Draws a character string framed in 'frame_color'.
  26. ┃ draw_shadow_text(x, y, width, height, string[, align, frame_color])
  27. ┃ draw_shadow_text(rect, string[, align, frame_color])
  28. ┃   x, y          : 描画先座標    [Integer]
  29. ┃                   Destination.
  30. ┃   width, height : 描画サイズ    [Integer]
  31. ┃                   Size.
  32. ┃   rect          : 描画領域      [Rect]
  33. ┃                   Rectangle.
  34. ┃   string        : 描画文字列    [String]
  35. ┃                   Output text.
  36. ┃   align         : 文字整列形式  [Integer]
  37. ┃                   Alignment.
  38. ┃   frame_color   : 縁取り色      [Color]
  39. ┃                   Frame color.
  40. ┃ 右下に影を落とした文字列を描画します。
  41. ┃ Draws a character string which drops shadow to lower right.
  42. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  43. =end
  44. $imported = {} if $imported == nil
  45. $imported["FrameShadowText"] = true
  46. #==============================================================================
  47. # ■ Bitmap
  48. #==============================================================================
  49. class Bitmap
  50.   #--------------------------------------------------------------------------
  51.   # ● 縁取り文字描画
  52.   #     x, y, width, height, string[, align, frame_color]
  53.   #     rect, string[, align, frame_color]
  54.   #--------------------------------------------------------------------------
  55.   def draw_frame_text(*args)
  56.     # 引数判定
  57.     if args[0].is_a?(Rect)
  58.       if args.size >= 2 && args.size <= 4
  59.         # 引数を処理用のローカル変数へコピー
  60.         x, y = args[0].x, args[0].y
  61.         width, height = args[0].width, args[0].height
  62.         string = args[1]
  63.         align = args[2].equal?(nil) ? 0 : args[2]
  64.         frame_color = args[3].equal?(nil) ? Color.new(0, 0, 0) : args[3]
  65.       else
  66.         # 引数が不正ならエラーを吐く
  67.         raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 2 ? 2 : 4})")
  68.         return
  69.       end
  70.     else
  71.       if args.size >= 5 && args.size <= 7
  72.         # 引数を処理用のローカル変数へコピー
  73.         x, y, width, height = args
  74.         string = args[4]
  75.         align = args[5].equal?(nil) ? 0 : args[5]
  76.         frame_color = args[6].equal?(nil) ? Color.new(0, 0, 0) : args[6]
  77.       else
  78.         # 引数が不正ならエラーを吐く
  79.         raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 5 ? 5 : 7})")
  80.         return
  81.       end
  82.     end
  83.     # 元の色を保存
  84.     origin_color = font.color.dup
  85.     # 縁取り
  86.     font.color = frame_color
  87.     draw_text(x - 1, y - 1, width, height, string, align)
  88.     draw_text(x - 1, y + 1, width, height, string, align)
  89.     draw_text(x + 1, y - 1, width, height, string, align)
  90.     draw_text(x + 1, y + 1, width, height, string, align)
  91.     # 元の色に戻す
  92.     font.color = origin_color
  93.     draw_text(x, y, width, height, string, align)
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 影文字描画
  97.   #     x, y, width, height, string[, align, shadow_color]
  98.   #     rect, string[, align, shadow_color]
  99.   #--------------------------------------------------------------------------
  100.   def draw_shadow_text(*args)
  101.     # 引数判定
  102.     if args[0].is_a?(Rect)
  103.       if args.size >= 2 && args.size <= 4
  104.         # 引数を処理用のローカル変数へコピー
  105.         x, y = args[0].x, args[0].y
  106.         width, height = args[0].width, args[0].height
  107.         string = args[1]
  108.         align = args[2].equal?(nil) ? 0 : args[2]
  109.         shadow_color = args[3].equal?(nil) ? Color.new(0, 0, 0) : args[3]
  110.       else
  111.         # 引数が不正ならエラーを吐く
  112.         raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 2 ? 2 : 4})")
  113.         return
  114.       end
  115.     else
  116.       if args.size >= 5 && args.size <= 7
  117.         # 引数を処理用のローカル変数へコピー
  118.         x, y, width, height = args
  119.         string = args[4]
  120.         align = args[5].equal?(nil) ? 0 : args[5]
  121.         shadow_color = args[6].equal?(nil) ? Color.new(0, 0, 0) : args[6]
  122.       else
  123.         # 引数が不正ならエラーを吐く
  124.         raise(ArgumentError, "wrong number of arguments(#{args.size} of #{args.size < 5 ? 5 : 7})")
  125.         return
  126.       end
  127.     end
  128.     # 元の色を保存
  129.     origin_color = font.color.dup
  130.     # 影描画
  131.     font.color = shadow_color
  132.     draw_text(x + 2, y + 2, width, height, string, align)
  133.     # 元の色に戻す
  134.     font.color = origin_color
  135.     draw_text(x, y, width, height, string, align)
  136.   end
  137. end
复制代码

= =要怎么用在游戏里... 看不懂的说
http://icv.cc声动音缘配音社
回复

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2006-10-25 13:42:12 | 显示全部楼层
这个是插入式的吗? [s:3]
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

845

主题

1万

帖子

214748万

积分

版主

脑残中……

Rank: 7Rank: 7Rank: 7

积分
2147483647

声命组金赏

 楼主| 发表于 2006-10-25 13:50:37 | 显示全部楼层
貌似是,但是需要写什么东西... 我米看明白... 貌似作者根本米写使用方法 [s:5]
http://icv.cc声动音缘配音社
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2006-10-25 13:54:18 | 显示全部楼层
Orz,日文我也不会看。 [s:5]
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

845

主题

1万

帖子

214748万

积分

版主

脑残中……

Rank: 7Rank: 7Rank: 7

积分
2147483647

声命组金赏

 楼主| 发表于 2006-10-25 13:56:23 | 显示全部楼层
[s:6] 看看他写的句子啊 [s:6]
http://icv.cc声动音缘配音社
回复 支持 反对

使用道具 举报

845

主题

1万

帖子

214748万

积分

版主

脑残中……

Rank: 7Rank: 7Rank: 7

积分
2147483647

声命组金赏

 楼主| 发表于 2006-10-26 12:54:20 | 显示全部楼层
[s:5] 谁来帮忙解决一下啊 [s:5]
http://icv.cc声动音缘配音社
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-28 12:26 , Processed in 0.015587 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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