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

Project1

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

[已经解决] 像电影字幕的那种结尾怎么做?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
14 小时
注册时间
2009-7-25
帖子
92
跳转到指定楼层
1
发表于 2011-7-15 15:46:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
412
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
2
发表于 2011-7-15 15:51:51 | 只看该作者
可以用显示图片+图片移动……
我记得好像有人发过滚幕的

点评

你玩ddt?来陪我玩吧。  发表于 2011-7-15 20:52

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2011-7-12
帖子
5
3
发表于 2011-7-15 16:14:37 | 只看该作者
用这个脚本吧,在cast于end之间输入你想要的字幕,这个是带图片的("Graphics/Pictures/")/后面是图片的名字,想在哪里用,就在某个事件里插入$scene = Scene_Credit.new就行
#——使用注意:默认会返回地图,如果需要返回开头,请将本脚本中的
#return_scene = Scene_Map.new改为return_scene = Scene_Title.new

class Scene_Credit
CREDIT=<<_END_
-----Cast-----



_END_


end

class Scene_Credit

  def initialize(return_scene = nil)
    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new("Graphics/Pictures/")
    @sprite.x = 0
    @sprite.y = 0
    if return_scene.nil?
      return_scene = Scene_Map.new
    end
    @return_scene = return_scene
  end
  
  def scene_start
    credit_lines = CREDIT.split(/\n/)
    credit_bitmap = Bitmap.new(640,32 * credit_lines.size)
    credit_lines.each_index do |i|
      line = credit_lines[i]
      credit_bitmap.draw_text(0,i * 32,640,32,line,1)
    end
    @credit_sprite = Sprite.new(Viewport.new(0,50,640,380))
    @credit_sprite.bitmap = credit_bitmap
    @credit_sprite.oy = -430
    @frame_index = 0
    @last_flag = false
  end

  def scene_end
    @credit_sprite.dispose
    @sprite.dispose
  end
  
  def last?
    return (@frame_index >= @credit_sprite.bitmap.height + 480)
  end
  
  def last
    if not @last_flag
      Audio.bgm_fade(10000)
      @last_flag = true
      @last_count = 0
    else
      @last_count += 1
    end
    if @last_count >= 300
      $scene = @return_scene
    end
  end
  
  def update
    @frame_index += 1
    return if cancel?
    last if last?
    @credit_sprite.oy += 1
  end

  def cancel?
    if Input.trigger?(Input::B)
      $scene = @return_scene
      return true
    end
    return false
  end

  def main
    scene_start
    # 过渡
    Graphics.transition
    # 主循环
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    scene_end
  end
end
果然,制作神马的云云不简单
回复

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

4
发表于 2011-7-15 16:28:44 | 只看该作者
把字幕做成一个很长很长的图片,然后显示图片(Y坐标为负值,和图片高度一样),然后移动图片。
回复

使用道具 举报

Lv3.寻梦者

小空格

梦石
0
星屑
2620
在线时间
553 小时
注册时间
2009-7-15
帖子
1107
5
发表于 2011-7-15 19:48:16 | 只看该作者
# ————————————————————————————————————
# 本脚本来自www.66rpg.com,转载请保留此信息
# ————————————————————————————————————

#——————————————————————————————————————
# Scene_Credit 制作人员名单
#——————————————————————————————————————


#——使用注意:默认会返回地图,如果需要返回开头,请将本脚本中的
#return_scene = Scene_Map.new改为return_scene = Scene_Title.new

class Scene_Credit
  CREDIT=<<_END_

(输入你要输入的内容。。。)
end

class Scene_Credit

  def initialize(return_scene = nil)
    if return_scene.nil?
      return_scene = Scene_Title.new
    end
    @return_scene = return_scene
  end
  
  def scene_start
    credit_lines = CREDIT.split(/\n/)
    credit_bitmap = Bitmap.new(640,32 * credit_lines.size)
    credit_lines.each_index do |i|
      line = credit_lines
      credit_bitmap.draw_text(0,i * 32,640,32,line,1)
    end
    @credit_sprite = Sprite.new(Viewport.new(0,50,640,380))
    @credit_sprite.bitmap = credit_bitmap
    @credit_sprite.oy = -430
    @frame_index = 0
    @last_flag = false
  end

  def scene_end
    @credit_sprite.dispose
  end
  
  def last?
    return (@frame_index >= @credit_sprite.bitmap.height + 480)
  end
  
  def last
    if not @last_flag
      Audio.bgm_fade(10000)
      @last_flag = true
      @last_count = 0
    else
      @last_count += 1
    end
    if @last_count >= 300
      $scene = @return_scene
    end
  end
  
  def update
    @frame_index += 1
    return if cancel?
    last if last?
    @credit_sprite.oy += 1
  end

  def cancel?
    if Input.trigger?(Input::B)
      $scene = @return_scene
      return true
    end
    return false
  end

  def main
    scene_start
    # 过渡
    Graphics.transition
    # 主循环
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    scene_end
  end
end

点评

好吧我没看见板凳。。。  发表于 2011-7-15 19:48
回复

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

6
发表于 2011-7-15 21:51:02 | 只看该作者
新人的话~~
做一张要显示的东西的图片,宽度保持在640以内,
高度不限,
然后用事件-->显示图片(调好坐标)-->移动图片(设置好速度)-->测试~~
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 14:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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