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

Project1

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

[已经解决] 这个调出图片的脚本怎么改?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
跳转到指定楼层
1
发表于 2013-8-19 13:31:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 wolves 于 2013-8-19 16:19 编辑


RUBY 代码复制
  1. #==========================================================================
  2. # Dump_Font
  3. #--------------------------------------------------------------------------
  4. # Fontの属性情報をdumpできるように保存するクラス
  5. # Bitmap#font=()へ引き渡す際はto_fontメソッドを用いる
  6. #--------------------------------------------------------------------------
  7. # ver.1.00(05/10/06) by 箱入小屋 [url]http://aea.to/hako/[/url]
  8. #==========================================================================
  9.  
  10. class Dump_Font
  11. # 初期化
  12. #  font : Fontオブジェクト
  13. def initialize(font)
  14.    @name = font.name
  15.    @size = font.size
  16.    @bold = font.bold
  17.    @italic = font.italic
  18.    @color = Color.new(font.color.red, font.color.green, font.color.blue,
  19.                       font.color.alpha)
  20. end
  21.  
  22. # Fontオブジェクトに変換して返す
  23. def to_font
  24.    font = Font.new(@name, @size)
  25.    font.bold = @bold
  26.    font.italic = @italic
  27.    font.color = @color
  28.    return font
  29. end
  30. end
  31.  
  32.  
  33. #==========================================================================
  34. # text_picture
  35. #--------------------------------------------------------------------------
  36. # イベントコマンド「スクリプト」でメソッド「text_picture」を呼び出した後、
  37. # イベントコマンド「ピクチャの表示」で表示します。
  38. # クラス「Dump_Font」が必要です。
  39. #--------------------------------------------------------------------------
  40. # ver 1.03 (05/10/08) by 箱入小屋 [url]http://aea.to/hako/[/url]
  41. #==========================================================================
  42.  
  43. class Interpreter
  44. #--------------------------------------------------------------------------
  45. # ● 文字列を「ピクチャ」として表示
  46. #   text : 文字列
  47. #   font : フォント(Font) *省略可
  48. #--------------------------------------------------------------------------
  49. def text_picture(text, font = nil)
  50.    if font.is_a?(Font) and not Font.exist?(font.name)
  51.      #◆ フォントが存在しない場合のフォント名
  52.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"]
  53.    elsif font.nil?
  54.      font = Font.new
  55.      #◆ フォントを指定しなかった場合のフォント
  56.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"] # フォント名
  57.      font.size = 22                      # サイズ
  58.      font.bold = false                   # ボールド(太字)フラグ
  59.      font.italic = false                 # イタリック(斜体)フラグ
  60.      font.color = Color.new(255,255,255) # フォントカラー(R, G, B)
  61.    end
  62.    @draw_text = [1, text, Dump_Font.new(font)]
  63.    return true
  64. end
  65. #--------------------------------------------------------------------------
  66. # ● ピクチャの表示(再定義)
  67. #--------------------------------------------------------------------------
  68. alias text_picture_command231 command_231
  69. def command_231
  70.    unless @draw_text.nil?
  71.      @parameters[1] = @draw_text # picture_name
  72.    end
  73.    text_picture_command231
  74.    @draw_text = nil
  75.    return true
  76. end
  77. end
  78.  
  79. class Sprite_Picture < Sprite
  80. #--------------------------------------------------------------------------
  81. # ● フレーム更新(再定義)
  82. #--------------------------------------------------------------------------
  83. alias text_picture_update update
  84. def update
  85.    # text_picture(Interpreter)で文字列を指定された場合
  86.    if @picture_name != @picture.name and @picture.name[0] == 1
  87.      @picture_name = @picture.name # [id(1), text, Dump_Font]の配列
  88.      self.bitmap = Bitmap.new(640, 100)
  89.      font = @picture_name[2].to_font
  90.      self.bitmap.font = font
  91.      rect = self.bitmap.text_size(@picture_name[1])
  92.      self.bitmap.dispose
  93.      self.bitmap = Bitmap.new(rect.width, rect.height)
  94.      self.bitmap.font = font
  95.      self.bitmap.draw_text(rect, @picture_name[1])
  96.    end
  97.    text_picture_update
  98. end
  99. end
  100.  
  101.  
  102. #==========================================================================
  103. # text_picture2 -- 複数行の文字列を「ピクチャ」として表示
  104. #--------------------------------------------------------------------------
  105. # イベントコマンド「スクリプト」で
  106. #   text_picture2(text [, font [, align]])
  107. # を呼び出した後、イベントコマンド「ピクチャの表示」で表示します。
  108. # クラス「Dump_Font」が必要です。
  109. #--------------------------------------------------------------------------
  110. # ver 1.00 (05/10/10) by 箱入小屋 [url]http://aea.to/hako/[/url]
  111. #==========================================================================
  112.  
  113. class Sprite_Picture < Sprite
  114. #--------------------------------------------------------------------------
  115. # ◆ 定数
  116. #--------------------------------------------------------------------------
  117. # 行間の指定 (指定しない方は nil にしてください)
  118. LINE_SPACE_PIXEL = 10   # ピクセル数で指定
  119. LINE_SPACE_VARID = nil  # このIDのゲーム変数に代入されている値で指定
  120. end
  121.  
  122. class Interpreter
  123. #--------------------------------------------------------------------------
  124. # ● 複数行の文字列を「ピクチャ」として設定
  125. #   text  : 文字列
  126. #   font  : フォント(Font) *省略可
  127. #   align : アラインメント (0..左揃え、1..中央揃え、2..右揃え) *省略可
  128. #--------------------------------------------------------------------------
  129. def text_picture2(text, font = nil, align = 0)
  130.    if font.is_a?(Font) and not Font.exist?(font.name)
  131.      #◆ フォントがない場合のフォント名
  132.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"]
  133.    elsif font.nil?
  134.      font = Font.new
  135.      #◆ フォントを指定しなかった場合のフォント
  136.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"] # フォント名
  137.      font.size = 22                      # サイズ
  138.      font.bold = false                   # ボールド(太字)フラグ
  139.      font.italic = false                 # イタリック(斜体)フラグ
  140.      font.color = Color.new(255,255,255) # フォントカラー(R, G, B)
  141.    end
  142.    @draw_text = [2, text, Dump_Font.new(font), align]
  143.    return true
  144. end
  145. #--------------------------------------------------------------------------
  146. # ● ピクチャの表示(再定義)
  147. #--------------------------------------------------------------------------
  148. alias text_picture2_command231 command_231
  149. def command_231
  150.    unless @draw_text.nil?
  151.      @parameters[1] = @draw_text
  152.    end
  153.    text_picture2_command231
  154.    @draw_text = nil
  155.    return true
  156. end
  157. end
  158.  
  159. class Sprite_Picture < Sprite
  160. #--------------------------------------------------------------------------
  161. # ● フレーム更新(再定義)
  162. #--------------------------------------------------------------------------
  163. alias text_picture2_update update
  164. def update
  165.    # Interpreter#text_picture2で文字列表示の情報を受け取った場合
  166.    if @picture_name != @picture.name and @picture.name[0] == 2
  167.      @picture_name = @picture.name  #=> [id(2), text, Dump_Font, align]
  168.      self.bitmap = Bitmap.new(640, 480)
  169.      self.bitmap.font = @picture_name[2].to_font
  170.      y = 0
  171.      space = LINE_SPACE_PIXEL ? LINE_SPACE_PIXEL : $game_variables[LINE_SPACE_VARID]
  172.      @picture_name[1].each_line do |line|
  173.        h = self.bitmap.text_size(line).height
  174.        self.bitmap.draw_text(0, y, 640, h, line, @picture_name[3])
  175.        y += h + space
  176.      end
  177.    end
  178.    text_picture2_update
  179. end
  180. end



这个脚本调出:

RUBY 代码复制
  1. s = "欢迎光临
  2. 这是一个
  3. 关于文字
  4. 使用图片
  5. 效果的例
  6. 子哦!!"
  7. font = Font.new("黑体", 55)
  8. font.color = Color.new(255,255,255)
  9. text_picture2(s,font,1.5)



我的问题是
怎么控制文字的位置,还有就是怎么将默认图片编号为1改为编号50???求助~~~

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
2
 楼主| 发表于 2013-8-20 10:13:41 | 只看该作者
求解。。。为神马一天了都没有人回答。。。
偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
141 小时
注册时间
2013-8-6
帖子
114
3
发表于 2013-8-20 11:16:11 | 只看该作者
如果你知道解释器是怎么工作的你就知道了,其实就是在解释器的相关指令里定义的。rgss1的解释器是用来向系统解释事件用的。
alias text_picture_command231 command_231表示关联text_picture_command231到指令231,而231就是解释器中显示图片的指令,因此你在Interpreter类的7个分页面里找指令231,就能找到显示图片的编号和位置。

评分

参与人数 1星屑 +105 收起 理由
弗雷德 + 105 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
4
 楼主| 发表于 2013-8-21 20:43:30 | 只看该作者
Algalon 发表于 2013-8-20 11:16
如果你知道解释器是怎么工作的你就知道了,其实就是在解释器的相关指令里定义的。rgss1的解释器是用来向系 ...

谢谢,明白了
偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 13:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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