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

Project1

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

[原创发布] 【脚本】简洁字幕 ver 1.0

[复制链接]

Lv4.逐梦者 (版主)

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

开拓者贵宾剧作品鉴家

1
发表于 2014-11-1 21:36:19 | 显示全部楼层
本帖最后由 RyanBern 于 2014-11-2 20:44 编辑

可能出现的问题:
1.如果TEXT为空会发生RGSSError
几个个人方面的建议:
1.变量还可以精简下,不必用到的变量目前发现有@return_scene和局部变量y(控制那个循环可以用@sprite.y控制)。
2.为什么要用平面来生成图形呢?是为了能够无缝拼接吗?其实很少有人使用Panorama里面的图片当背景,所以还是单纯的Sprite为好。
3.用Window作为载体看起来好不习惯,建议使用Sprite+Viewport,好处是结构简单,而且可以限制字幕在屏幕上的区域(Viewport的神奇作用)
↓瞎改的,最好不要用
RUBY 代码复制
  1. class Scene_Credit
  2. TEXT = <<END_CREDIT
  3. 静夜思
  4. []李白
  5. 床前明月光,
  6. 疑是地上霜。
  7. 举头望明月,
  8. 低头思故乡。
  9.  
  10. END_CREDIT
  11. end
  12. class Sprite_Credit < Sprite
  13.   def initialize(text, viewport = nil)
  14.     super(viewport)
  15.     # 根据显示区域的不同改变那个w
  16.     w = 640
  17.     self.bitmap = Bitmap.new(w, text.size == 0 ? 1 : text.size * 32)
  18.     refresh
  19.   end
  20.   def refresh
  21.     for i in 0...text.size
  22.       self.bitmap.draw_text(0,i*32,640,32,text[i], 1)
  23.     end
  24.   end
  25. end
  26.  
  27. class Scene_Credit
  28.    def main
  29.     Audio.bgm_play("Audio/BGM/End Credits", 100, 100)
  30.     @sprite = Sprite.new
  31.     @sprite.bitmap = RPG::Cache.title("001-Title01")
  32.     @view = Viewport.new(50, 50, 400, 200)
  33.     @sprite_credit = Sprite_Credit.new(TEXT.split("\n"), @view)
  34.     @sprite_credit.y = @view.rect.height
  35.     Graphics.transition
  36.     while @view.oy <= @sprite_credit.bitmap.height + @view.rect.height
  37.       @view.oy += 2
  38.       Graphics.update
  39.     end
  40.     Graphics.freeze
  41.     @sprite_credit.dispose
  42.     @view.dispose
  43.     @sprite.bitmap.dispose
  44.     @sprite.dispose
  45.     $scene = Scene_Title.new
  46.   end
  47. end

点评

我好像突然记起来了,是有这么回事  发表于 2014-11-2 12:25
其实 window 也有 viewport ……  发表于 2014-11-2 07:36
好吧,我理解错误了…… 版主大人指的应该是不使用窗口吧……  发表于 2014-11-1 22:02
求问how to不用BItmap达到draw_text的效果?  发表于 2014-11-1 22:01
可以尝试用Viewport,因为有时候希望字幕出现的区域有限制(主要是上下限制)。Window用多了确实会产生依赖,不过想想确实可以直接把字描绘到Sprite上  发表于 2014-11-1 21:54
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 23:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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