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

Project1

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

[已经解决] 如何在放一段音乐时其他操作都失效?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
705
在线时间
2 小时
注册时间
2015-7-18
帖子
4
跳转到指定楼层
1
发表于 2015-7-18 20:22:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
如题。比如说,NPC说我们来听一段音乐,然后音乐响起,之后无论你如何点鼠标,都不会有反应,直到音乐放完。然后才能开始其他操作。比如移动人物或者继续对话.希望各位大神指点

Lv4.逐梦者

梦石
0
星屑
13562
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

8
发表于 2015-8-2 19:37:35 | 只看该作者
脚本中 在main前面插入一新段
复制上:
  1. module Extra
  2.   module_function
  3.   PlaySound=Win32API.new("winmm.dll","PlaySound",'pll','l')
  4.   def Play_Music(pl)
  5.     PlaySound.call(pl,0,1)
  6.     200.times{Graphics.update} #让音乐准备好 可以短一点 不过无所谓的
  7.     loop{Graphics.update
  8.     break if PlaySound.call("x.wav",0,1|16)==1}  #这里改地址
  9.   end
  10. end
复制代码
调用是 Extra.Play_Music("你的音乐文件地址")
但是音乐文件必须是wav格式的
此外 在文件目录下新建一个 x.wav 内容空白
你可以把这个x.wav建在其他地方 但是上面的代码要相应变化

p.s.Ruby中 Audio\bgm  要改成 Audio/bgm

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
705
在线时间
2 小时
注册时间
2015-7-18
帖子
4
7
 楼主| 发表于 2015-7-19 08:49:32 | 只看该作者
茨木华扇 发表于 2015-7-18 22:46
演奏BGM,然后用等待事件,等待x帧。
x=音乐时长(秒)×60
x最大等于999,所以超过16.65秒长度的BGM需要用 ...

非常感谢,不过我之前就采用这种方法,但觉得怪怪的,想问问还有没有其他的办法。不过还是谢谢啦

点评

XP中没有比较好的办法来判断一个音乐文件是否已经播放完毕(没有音乐的定位功能),所以也只能用这种方法了。  发表于 2015-7-21 11:58
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
705
在线时间
2 小时
注册时间
2015-7-18
帖子
4
6
 楼主| 发表于 2015-7-19 08:48:25 | 只看该作者
RyanBern 发表于 2015-7-18 20:30
你先估算一下你的音乐时长,然后使用事件的【等待】命令。
等待的帧数与时间的换算关系是20帧=1秒。
假如我 ...

非常感谢,不过我之前就采用这种方法,但觉得怪怪的,想问问还有没有其他的办法。不过还是谢谢啦
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
705
在线时间
2 小时
注册时间
2015-7-18
帖子
4
5
 楼主| 发表于 2015-7-19 08:47:33 | 只看该作者
taroxd 发表于 2015-7-18 20:28
播放音乐
等待X帧(X为音乐时长)

非常感谢,不过我之前就采用这种方法,但觉得怪怪的,想问问还有没有其他的办法。不过还是谢谢啦
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2014-9-5
帖子
13
4
发表于 2015-7-18 22:46:50 | 只看该作者
演奏BGM,然后用等待事件,等待x帧。
x=音乐时长(秒)×60
x最大等于999,所以超过16.65秒长度的BGM需要用多个等待事件叠加。

点评

XP事件中1秒是20帧哦,这点和VA不同  发表于 2015-7-18 22:51

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

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

开拓者贵宾剧作品鉴家

3
发表于 2015-7-18 20:30:45 | 只看该作者
你先估算一下你的音乐时长,然后使用事件的【等待】命令。
等待的帧数与时间的换算关系是20帧=1秒。
假如我的BGM的名字叫做'bgm.wma',长度是1分钟,那么我就这样写:
【事件指令】
演奏BGM:'bgm.wma'
等待:600帧
等待:600帧
注:等待命令最多设置999帧,所以如果长度超过999帧请使用多个【等待】命令。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-7-18 20:28:51 | 只看该作者
播放音乐
等待X帧(X为音乐时长)

如果怕对面把游戏放到后台的话,可以考虑使用 Time.now 进行计算。(不要问我要范例和代码。我没有XP)

在 RGSS3 中可以使用 Audio.bgm_pos 进行判断

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-12 04:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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