Project1

标题: 如何让游戏在开始前先播放一段视频 [打印本页]

作者: lingmu369    时间: 2012-7-2 21:07
标题: 如何让游戏在开始前先播放一段视频
各位大神,我是rmva初学者,想利用暑假期间rmva制作一个游戏,现在遇到一个问题,就是如何让游戏在开始前先播放一段视频,然后再是开始菜单,还请各位大神不吝赐教啊,谢谢!(我知道这个问题以前好像有人问过,但是找了很长时间,还是没有结果,希望大家能帮个忙。)
作者: lingmu369    时间: 2012-7-2 21:38
如果有哪位高手知道怎样能在开头显示一张图片,停几秒后让其消失,然后再是开始菜单,就像有些游戏之前的反沉迷图片一样,也请不吝赐教。谢谢!
作者: 黑化の鼠标    时间: 2012-7-2 23:58
请直接搜索“跳过标题菜单”,然后你会知道的
或者直接搜索“事件标题”
作者: lingmu369    时间: 2012-7-3 10:23
首先,非常感谢上楼仁兄在凌晨还为我解答问题,我表示非常感谢。但是,我好像没有把问题表示清楚,我之前也用过那样跳过标题或者直接干掉标题显示的,但是两种方法都存在一个问题:1、用跳过标题但是支持中途返回标题的那些版本,当你在游戏中途返回标题,然后开始新游戏时,会播放那个开场的画面;2、如果用直接干掉标题的那些版本,当你游戏结束返回标题时仍然会播放开场画面;3、考虑到游戏界面风格的一致性,其实我这次主要的目的是能不能在保持原来开始界面的情况下,先播放一个视频或者图片,然后是开始界面,中途返回开始界面的话就不用播放那段视频或图片了,如果有那位朋友知道的话,还望赐教。(当然,如果你能解决上面用事件做开始界面那些问题的话,也希望你能留言,谢谢!)
作者: 战国丶电灯胆    时间: 2012-7-3 10:45
可以用事件做啊!

   
作者: lingmu369    时间: 2012-7-3 11:01
我上边说的那两种方法就是用事件做的标题,但是存在我说的那种问题。
作者: 后知后觉    时间: 2012-7-3 11:29
播放视频:
找到脚本编辑器最下方的 Main 脚本
看到这一行

rgss_main { SceneManager.run }

在这一行的上面加一行

Graphics.play_movie("")


在括号中的 "" 写入视频文件的文件名.(如果是在某文件夹里需要加上文件夹名.)
要注意的是播放的视频文件必须是 ogv 格式的.并且在播放的过程中无法跳过.

播放图片:
还是找到 Main 里的那一行在上面插入下面的代码


  1. Graphics.freeze
  2. sprite = Sprite.new
  3. sprite.bitmap = Bitmap.new("Graphics/System/Logo")
  4. sprite.opacity = 0
  5. sprite.ox = sprite.bitmap.width / 2
  6. sprite.oy = sprite.bitmap.height / 2
  7. sprite.x = Graphics.width / 2
  8. sprite.y = Graphics.height / 2
  9. Graphics.transition
  10. RPG::SE.new("", 100, 100).play
  11. while sprite.opacity < 255
  12.   Graphics.update
  13.   Input.update
  14.   sprite.opacity += 3
  15.   sprite.opacity = 255 if Input.trigger?(13)
  16. end
  17. Graphics.wait(40)
  18. while sprite.opacity > 0
  19.   Graphics.update
  20.   Input.update
  21.   sprite.opacity -= 3
  22.   sprite.opacity = 0 if Input.trigger?(13)
  23. end
  24. Graphics.update
  25. Graphics.freeze
  26. sprite.bitmap.dispose
  27. sprite.dispose
复制代码
图片命名为 Logo 放在 Graphics/System/ 文件夹下
还可以播放一个 SE 不过需要设置 SE 文件名
找到 RPG::SE.new("", 100, 100).play
在 "" 里面写入文件名.不要些路径.文件放在 Audio/SE/ 目录下
作者: lingmu369    时间: 2012-7-3 12:04
谢谢楼上,太好了,要的就是这个效果,十分感谢。不过还有一个小问题:那个图片显示的时间长短是这句吧Graphics.wait(40),为什么我把40修改成1或者1000时,显示时间不是按比例增长的呢?能不能分析一下,谢了!
作者: 后知后觉    时间: 2012-7-3 18:20
时间的控制一共有3行
你说的那一行是不透明度达到255时候维持的时间
sprite.opacity += 3  这一行是从 不透明度逐渐加到 255 的过程
sprite.opacity -= 3  这一行是从 不透明度逐渐减到 0 的过程
不透明度的取值范围是 0-255.
+= 3 代表每次 在现有基础上加 3 .从0加到255需要255/3=85的时间.大约85/60=1.42秒
作者: lingmu369    时间: 2012-7-4 13:36
十分感谢你这么耐心的讲解,解释的非常清楚,而且非常及时,因为我正巧今天放假回家,呵呵。再次表示感谢。
作者: 浮云桑    时间: 2012-7-4 13:45
参考LoGO设置,手机党无力




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1