Project1

标题: 如何在场景执行时先播放个动画和音乐? [打印本页]

作者: 文雅夕露    时间: 2017-12-23 12:04
标题: 如何在场景执行时先播放个动画和音乐?
合成.zip (206.23 KB, 下载次数: 62)
比如这个合成系统,当选择“是”。
合成时播放动画和播放音乐,结束后还原音乐。
请问该怎么做呢?
作者: 梦幻想    时间: 2017-12-24 04:13
不是很明白你的需求……动画是要在哪里播放,最简单的实现方式还是每隔几帧显示一张图片,然后等图片显示完再还原BGM
比如你这个范例就改706行附近的代码

RUBY 代码复制
  1. if Input.trigger?(Input::C)
  2.       if @yes_no_window.index == 0
  3.         #=====================================================
  4.         $game_system.bgm_memorize
  5.         Audio.bgm_play("Audio/BGM/XXXXXXX" ,100, 100)   #XXXXX是你想要播放的BGM名称
  6.         sprite=Sprite.new
  7.         sprite.x = 220
  8.         sprite.y = 140
  9.         sprite.z = 99999
  10.         for i in 1...n                #N是你要连续播放的图片数量,为了播放动画
  11.         sprite.bitmap = RPG::Cache.picture("a ("+i.to_s+").png")    #图片的命名格式为“a (n)”,n=1,2,3,4,5,6........
  12.         3.times{Graphics.update}
  13.         sprite.update
  14.         end
  15.         sprite.dispose
  16.         $game_system.bgm_restore
  17.         #=====================================================
  18.         $game_system.se_play($data_system.decision_se)
  19.         @recipe.make
  20.         $game_system.se_play($data_system.save_se)
  21.         $scene=Scene_Craft.new(@craft_type,@craft_index)
  22.       else
  23.         $game_system.se_play($data_system.cancel_se)
  24.         $scene=Scene_Craft.new(@craft_type,@craft_index)
  25.       end
  26.     end


顺便传了个范例工程

合成.zip

963.44 KB, 下载次数: 61


作者: 文雅夕露    时间: 2017-12-24 10:53
梦幻想 发表于 2017-12-24 04:13
不是很明白你的需求……动画是要在哪里播放,最简单的实现方式还是每隔几帧显示一张图片,然后等图片显示完 ...

这种方法可行,不过我要播放的动画帧数还挺长。
分割图片的方法会大幅度提高游戏容量的。
不如可否直接播放数据库里的动画呢?
作者: 梦幻想    时间: 2017-12-24 12:45
本帖最后由 梦幻想 于 2017-12-24 12:47 编辑
文雅夕露 发表于 2017-12-24 10:53
这种方法可行,不过我要播放的动画帧数还挺长。
分割图片的方法会大幅度提高游戏容量的。
不如可否直接播 ...


RUBY 代码复制
  1. $game_system.bgm_memorize
  2.         Audio.bgm_play("Audio/BGM/1.ogg" ,100, 100)
  3.         #sprite=Sprite.new  <-----改成下面这行
  4.         sprite=RPG::Sprite.new
  5.         sprite.x = 320
  6.         sprite.y = 240
  7.         sprite.z = 99999
  8.         sprite.animation($data_animations[3],true) #播放的动画id
  9.         for i in 1...18   #按照动画帧数循环
  10.         Graphics.update
  11.         sprite.update
  12.         end
  13.         sprite.dispose
  14.         $game_system.bgm_restore





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