赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 1012 |
最后登录 | 2018-10-28 |
在线时间 | 5 小时 |
Lv1.梦旅人 神之瞳
- 梦石
- 0
- 星屑
- 60
- 在线时间
- 5 小时
- 注册时间
- 2009-7-5
- 帖子
- 314
|
本帖最后由 上帝的眼睛 于 2009-10-31 15:23 编辑
- #==========================================================================
- # ■ Dump_Font
- #--------------------------------------------------------------------------
- # Font 的属性信息 dump 好像能那样的保存的Class
- # 向 # Bitmap# font=() 递交的时候用 to_font 方式
- #--------------------------------------------------------------------------
- # ★ 脚本来源:ver.1.00(05/10/06) by 箱入小屋 http://aea.to/hako/
- #--------------------------------------------------------------------------
- # ★ 翻译:天狼星1110
- #==========================================================================
- class Dump_Font
- # 格式化
- # font :客观的Font
- def initialize(font)
- @name = font.name
- @size = font.size
- @bold = font.bold
- @italic = font.italic
- @color = Color.new(font.color.red, font.color.green, font.color.blue,
- font.color.alpha)
- end
-
- # 对 Font 客观转换回答
- def to_font
- font = Font.new(@name, @size)
- font.bold = @bold
- font.italic = @italic
- font.color = @color
- return font
- end
- end
- #==========================================================================
- # text_picture
- #--------------------------------------------------------------------------
- # 活动指令「手稿」 , 叫出来方式「 text_picture 」之后,
- # 以活动指令「 piccha 的表示」表示。
- # Class里「 Dump_Font 」是必要的。
- #--------------------------------------------------------------------------
- # ver 1.03 (05/10/08) by 箱入小屋 http://aea.to/hako/
- #==========================================================================
- class Interpreter
- #--------------------------------------------------------------------------
- # ● 文字列作为「 piccha 」表示
- # text : 文字列
- # font : 字型 ( Font)* 可以省略
- #--------------------------------------------------------------------------
- def text_picture(text, font = nil)
- if font.is_a?(Font) and not Font.exist?(font.name)
- #◆ 没存在字型的情况的字型名
- font.name = [ "楷体" , "黑体", "宋体","新細明體"]
- elsif font.nil?
- font = Font.new
- #◆ 因为指定字型情况的字型
- font.name = ["楷体" , "黑体", "宋体","新細明體"] # 字型名
- font.size = 22 # 尺寸
- font.bold = false # boirudo( 黑体字 ) 标识
- font.italic = false # 欧文斜体字 ( 非交换域 ) 标识
- font.color = Color.new(0,0,0) # 字型颜色 ( R, G, B)
- #font.color = normal_color
- end
- @draw_text = [1, text, Dump_Font.new(font)]
- return true
- end
- #--------------------------------------------------------------------------
- # ● picture的表示 ( 再定义 )
- #--------------------------------------------------------------------------
- alias text_picture_command231 command_231
- def command_231
- unless @draw_text.nil?
- @parameters[1] = @draw_text # picture_name
- end
- text_picture_command231
- @draw_text = nil
- return true
- end
- end
- class Sprite_Picture < Sprite
- #--------------------------------------------------------------------------
- # ● 画框更新 ( 再定义 )
- #--------------------------------------------------------------------------
- alias text_picture_update update
- def update
- # text_picture(Interpreter)是被指定文字列的情况
- if @picture_name != @picture.name and @picture.name[0] == 1
- @picture_name = @picture.name # [id(1), text, Dump_Font]的排列
- self.bitmap = Bitmap.new(640, 100)
- font = @picture_name[2].to_font
- self.bitmap.font = font
- rect = self.bitmap.text_size(@picture_name[1])
- self.bitmap.dispose
- self.bitmap = Bitmap.new(rect.width, rect.height)
- self.bitmap.font = font
- self.bitmap.draw_text(rect, @picture_name[1])
- end
- text_picture_update
- end
- end
- #==========================================================================
- # text_picture2 -- 多数直行的文字列作为「 piccha 」表示
- #--------------------------------------------------------------------------
- # 活动指令「手稿」
- # text_picture2(text [, font [, align]])
- # 叫出来之后,以活动指令「 piccha 的表示」表示。
- # Class里「 Dump_Font 」是必要的。
- #--------------------------------------------------------------------------
- # ver 1.00 (05/10/10) by 箱入小屋 http://aea.to/hako/
- #==========================================================================
- class Sprite_Picture < Sprite
- #--------------------------------------------------------------------------
- # ◆ 定数
- #--------------------------------------------------------------------------
- # 行间的指定 ( 没指定的是 nil )
- LINE_SPACE_PIXEL = 10 # 图素数量指定
- LINE_SPACE_VARID = nil # 以对这个 ID 的游戏变数被代入的数值指定
- end
- class Interpreter
- #--------------------------------------------------------------------------
- # ● 多数直行的文字列作为「 piccha 」设定
- # text : 文字列
- # font : 字型 ( Font)* 可以省略
- # align : arainment(0..左使,一致 1..使中央一致, 2..使右边一致 )* 可以省略
- #--------------------------------------------------------------------------
- def text_picture2(text, font = nil, align = 0)
- if font.is_a?(Font) and not Font.exist?(font.name)
- #◆ 没有◆字型的情况的字型名
- font.name = ["楷体" , "黑体", "宋体","新細明體"]
- elsif font.nil?
- font = Font.new
- #◆ 因为指定字型情况的字型
- font.name = ["楷体" , "黑体", "宋体","新細明體"] # 字型名
- font.size = 22 # 尺寸
- font.bold = false # boirudo( 黑体字 ) 标识
- font.italic = false # 欧文斜体字 ( 非交换域 ) 标识
- font.color = Color.new(0,0,0) # 字型颜色 ( R, G, B)
- end
- @draw_text = [2, text, Dump_Font.new(font), align]
- return true
- end
- #--------------------------------------------------------------------------
- # ● piccha 的表示 ( 再定义 )
- #--------------------------------------------------------------------------
- alias text_picture2_command231 command_231
- def command_231
- unless @draw_text.nil?
- @parameters[1] = @draw_text
- end
- text_picture2_command231
- @draw_text = nil
- return true
- end
- end
- class Sprite_Picture < Sprite
- #--------------------------------------------------------------------------
- # ● フレーム更新(再定義)
- #--------------------------------------------------------------------------
- alias text_picture2_update update
- def update
- # Interpreter#text_picture2で文字列表示の情報を受け取った場合
- if @picture_name != @picture.name and @picture.name[0] == 2
- @picture_name = @picture.name #=> [id(2), text, Dump_Font, align]
- self.bitmap = Bitmap.new(640, 480)
- self.bitmap.font = @picture_name[2].to_font
- y = 0
- space = LINE_SPACE_PIXEL ? LINE_SPACE_PIXEL : $game_variables[LINE_SPACE_VARID]
- @picture_name[1].each_line do |line|
- h = self.bitmap.text_size(line).height
- self.bitmap.draw_text(0, y, 640, h, line, @picture_name[3])
- y += h + space
- end
- end
- text_picture2_update
- end
- end
复制代码 文字使用图片效果
使用时:- s = "测试!"
- font = Font.new("楷体", 30)
- font.color = Color.new(0, 0, 0)
- text_picture2( s ,font,0)
复制代码 |
|