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

Project1

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

[已经解决] 求教怎么用RPG XP做出那种屏幕中间有文字显示的剧情

[复制链接]

Lv1.梦旅人

梦石
0
星屑
575
在线时间
11 小时
注册时间
2012-12-2
帖子
4
跳转到指定楼层
1
发表于 2013-8-27 11:06:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
可能我说不太明白,希望大家尽量脑补下我的问题,就是很多游戏开始的剧情会在屏幕中间出现独白或者背景故事的叙述的文字,不是用对话框显示的,是直接显示在屏幕中间的那种效果,不知道各位大大理解这个意思不?我想请教一下这种效果是怎么制作的?这个效果大家都怎么称呼的??

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2013-8-27 11:40:34 | 只看该作者
这个确实还是对话框,首先建一个黑幕地图(这个随便拿黑色的图块填充就行了)
然后事件里设置[更改文章选项]中,不显示,然后显示文章
缺点是一次只能显示5行,要显示更多的话需要脚本或者直接用显示图片也行。

评分

参与人数 1星屑 +63 收起 理由
弗雷德 + 63 我很赞同

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

梦石
1
星屑
2971
在线时间
1041 小时
注册时间
2013-8-9
帖子
2328

R考场第七期纪念奖开拓者

3
发表于 2013-8-27 11:50:29 | 只看该作者
事件,
改变文章选项:中,显示
显示文章:BALABALA
最后要记得把文章选项改回:下,显示

评分

参与人数 1星屑 +56 收起 理由
弗雷德 + 56 感谢回答

查看全部评分

2021.8-2024.5
消失了3年的阿鑫再次出现
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
575
在线时间
11 小时
注册时间
2012-12-2
帖子
4
4
 楼主| 发表于 2013-8-27 12:01:43 | 只看该作者
kuerlulu 发表于 2013-8-27 11:40
这个确实还是对话框,首先建一个黑幕地图(这个随便拿黑色的图块填充就行了)
然后事件里设置[更改文章选项] ...

哦哦,我去试试看,也想过用对话框做,但是没想到这一层去……谢谢啦
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
575
在线时间
11 小时
注册时间
2012-12-2
帖子
4
5
 楼主| 发表于 2013-8-27 12:02:09 | 只看该作者
鑫の尘埃 发表于 2013-8-27 11:50
事件,
改变文章选项:中,显示
显示文章:BALABALA

恩恩,谢谢啦,我去试试看
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
155
在线时间
332 小时
注册时间
2013-7-6
帖子
356
6
发表于 2013-8-27 16:09:01 | 只看该作者
LZ可以试试这个脚本,这个脚本可以显示文章为图片:
  1. #==========================================================================
  2. # Dump_Font
  3. #--------------------------------------------------------------------------
  4. # Fontの属性情報をdumpできるように保存するクラス
  5. # Bitmap#font=()へ引き渡す際はto_fontメソッドを用いる
  6. #--------------------------------------------------------------------------
  7. # ver.1.00(05/10/06) by 箱入小屋 http://aea.to/hako/
  8. #==========================================================================

  9. class Dump_Font
  10. # 初期化
  11. #  font : Fontオブジェクト
  12. def initialize(font)
  13.    @name = font.name
  14.    @size = font.size
  15.    @bold = font.bold
  16.    @italic = font.italic
  17.    [url=home.php?mod=space&uid=10453]@color[/url] = Color.new(font.color.red, font.color.green, font.color.blue,
  18.                       font.color.alpha)
  19. end

  20. # Fontオブジェクトに変換して返す
  21. def to_font
  22.    font = Font.new(@name, @size)
  23.    font.bold = @bold
  24.    font.italic = @italic
  25.    font.color = @color
  26.    return font
  27. end
  28. end


  29. #==========================================================================
  30. # text_picture
  31. #--------------------------------------------------------------------------
  32. # イベントコマンド「スクリプト」でメソッド「text_picture」を呼び出した後、
  33. # イベントコマンド「ピクチャの表示」で表示します。
  34. # クラス「Dump_Font」が必要です。
  35. #--------------------------------------------------------------------------
  36. # ver 1.03 (05/10/08) by 箱入小屋 http://aea.to/hako/
  37. #==========================================================================

  38. class Interpreter
  39. #--------------------------------------------------------------------------
  40. # ● 文字列を「ピクチャ」として表示
  41. #   text : 文字列
  42. #   font : フォント(Font) *省略可
  43. #--------------------------------------------------------------------------
  44. def text_picture(text, font = nil)
  45.    if font.is_a?(Font) and not Font.exist?(font.name)
  46.      #◆ フォントが存在しない場合のフォント名
  47.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"]
  48.    elsif font.nil?
  49.      font = Font.new
  50.      #◆ フォントを指定しなかった場合のフォント
  51.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"] # フォント名
  52.      font.size = 22                      # サイズ
  53.      font.bold = false                   # ボールド(太字)フラグ
  54.      font.italic = false                 # イタリック(斜体)フラグ
  55.      font.color = Color.new(255,255,255) # フォントカラー(R, G, B)
  56.    end
  57.    @draw_text = [1, text, Dump_Font.new(font)]
  58.    return true
  59. end
  60. #--------------------------------------------------------------------------
  61. # ● ピクチャの表示(再定義)
  62. #--------------------------------------------------------------------------
  63. alias text_picture_command231 command_231
  64. def command_231
  65.    unless @draw_text.nil?
  66.      @parameters[1] = @draw_text # picture_name
  67.    end
  68.    text_picture_command231
  69.    @draw_text = nil
  70.    return true
  71. end
  72. end

  73. class Sprite_Picture < Sprite
  74. #--------------------------------------------------------------------------
  75. # ● フレーム更新(再定義)
  76. #--------------------------------------------------------------------------
  77. alias text_picture_update update
  78. def update
  79.    # text_picture(Interpreter)で文字列を指定された場合
  80.    if @picture_name != @picture.name and @picture.name[0] == 1
  81.      @picture_name = @picture.name # [id(1), text, Dump_Font]の配列
  82.      self.bitmap = Bitmap.new(640, 100)
  83.      font = @picture_name[2].to_font
  84.      self.bitmap.font = font
  85.      rect = self.bitmap.text_size(@picture_name[1])
  86.      self.bitmap.dispose
  87.      self.bitmap = Bitmap.new(rect.width, rect.height)
  88.      self.bitmap.font = font
  89.      self.bitmap.draw_text(rect, @picture_name[1])
  90.    end
  91.    text_picture_update
  92. end
  93. end


  94. #==========================================================================
  95. # text_picture2 -- 複数行の文字列を「ピクチャ」として表示
  96. #--------------------------------------------------------------------------
  97. # イベントコマンド「スクリプト」で
  98. #   text_picture2(text [, font [, align]])
  99. # を呼び出した後、イベントコマンド「ピクチャの表示」で表示します。
  100. # クラス「Dump_Font」が必要です。
  101. #--------------------------------------------------------------------------
  102. # ver 1.00 (05/10/10) by 箱入小屋 http://aea.to/hako/
  103. #==========================================================================

  104. class Sprite_Picture < Sprite
  105. #--------------------------------------------------------------------------
  106. # ◆ 定数
  107. #--------------------------------------------------------------------------
  108. # 行間の指定 (指定しない方は nil にしてください)
  109. LINE_SPACE_PIXEL = 10   # ピクセル数で指定
  110. LINE_SPACE_VARID = nil  # このIDのゲーム変数に代入されている値で指定
  111. end

  112. class Interpreter
  113. #--------------------------------------------------------------------------
  114. # ● 複数行の文字列を「ピクチャ」として設定
  115. #   text  : 文字列
  116. #   font  : フォント(Font) *省略可
  117. #   align : アラインメント (0..左揃え、1..中央揃え、2..右揃え) *省略可
  118. #--------------------------------------------------------------------------
  119. def text_picture2(text, font = nil, align = 0)
  120.    if font.is_a?(Font) and not Font.exist?(font.name)
  121.      #◆ フォントがない場合のフォント名
  122.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"]
  123.    elsif font.nil?
  124.      font = Font.new
  125.      #◆ フォントを指定しなかった場合のフォント
  126.      font.name = ["MS Pゴシック", "MS P明朝", "黑体", "宋体"] # フォント名
  127.      font.size = 22                      # サイズ
  128.      font.bold = false                   # ボールド(太字)フラグ
  129.      font.italic = false                 # イタリック(斜体)フラグ
  130.      font.color = Color.new(255,255,255) # フォントカラー(R, G, B)
  131.    end
  132.    @draw_text = [2, text, Dump_Font.new(font), align]
  133.    return true
  134. end
  135. #--------------------------------------------------------------------------
  136. # ● ピクチャの表示(再定義)
  137. #--------------------------------------------------------------------------
  138. alias text_picture2_command231 command_231
  139. def command_231
  140.    unless @draw_text.nil?
  141.      @parameters[1] = @draw_text
  142.    end
  143.    text_picture2_command231
  144.    @draw_text = nil
  145.    return true
  146. end
  147. end

  148. class Sprite_Picture < Sprite
  149. #--------------------------------------------------------------------------
  150. # ● フレーム更新(再定義)
  151. #--------------------------------------------------------------------------
  152. alias text_picture2_update update
  153. def update
  154.    # Interpreter#text_picture2で文字列表示の情報を受け取った場合
  155.    if @picture_name != @picture.name and @picture.name[0] == 2
  156.      @picture_name = @picture.name  #=> [id(2), text, Dump_Font, align]
  157.      self.bitmap = Bitmap.new(640, 480)
  158.      self.bitmap.font = @picture_name[2].to_font
  159.      y = 0
  160.      space = LINE_SPACE_PIXEL ? LINE_SPACE_PIXEL : $game_variables[LINE_SPACE_VARID]
  161.      @picture_name[1].each_line do |line|
  162.        h = self.bitmap.text_size(line).height
  163.        self.bitmap.draw_text(0, y, 640, h, line, @picture_name[3])
  164.        y += h + space
  165.      end
  166.    end
  167.    text_picture2_update
  168. end
  169. end
复制代码
调用方法:

脚本:
RUBY 代码复制
  1. s = "文章内容"
  2. font = Font.new("黑体", 24)
  3. font.color = Color.new(255,255,255)
  4. text_picture2(s,font,1.5)

评分

参与人数 1星屑 +84 收起 理由
弗雷德 + 84 感谢回答

查看全部评分

偶是熬夜学编程的傻子
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33442
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

7
发表于 2013-8-27 20:50:36 手机端发表。 | 只看该作者
首先建立一张透明底的图片,大小最好是640*480。然后在上面中间位置写剧情文字。(以上过程用图片软件,推荐易掌握的美图秀秀)。 设置一空白初始地图,把角色行走图改为无,然后依次显示制作好的图片,显示完后,场所移动到开始地图,再把角色行走图改回来即可。

评分

参与人数 1星屑 +77 收起 理由
弗雷德 + 77 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 18:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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