Project1

标题: 如何做一个类似Audio的模块 [打印本页]

作者: hys111111    时间: 2015-1-3 14:58
标题: 如何做一个类似Audio的模块
我接触过的游戏中,很多都是两个BGM伴随着播放。
两个BGM通常是主BGM+soundspace,在一些情况,比如说剧情的时候,主BGM会缩小,soundspace仍然播放。
实际上,BGS可以代替这个soundspace,但是有些情况。

首先,BGS没办法播放mid的文件。
另外,假如接近瀑布、河流这类东西。要放瀑布的BGS,就导致代替soundspace的BGS停止。

我的想法是:
  1. Audio2 = Audio
  2. Audio2.bgs_play("Audio/BGS/soundspace",100,100)
复制代码
实际上第二行一点反应都没有。

Audio的类实际上是个module,但是用它来制作Audio2时也有些困难。
  1. p Audio
  2. p Audio2
复制代码
输出的均为Audio和Audio2,没有其它信息。
而p它的那些方法时,输出的是nil
  1. p Audio.bgm_play("Audio/BGM/乩童之塔·舞风",100,100)#==>nil
复制代码
所以没法参照Audio做一个类似Audio的Audio2出来。

现有RGSSAudioInitialize、RGSSAudioFinalize两个函数。
我要想办法来调用。
  1. module Audio2
  2.   Initialize = ::Win32API.new('RGSS103J', 'RGSSAudioInitialize', 'I', 'I')
  3.   Finalize   = ::Win32API.new('RGSS103J', 'RGSSAudioFinalize',   nil, 'I')
  4. end

  5. Audio2.bgm_play("Audio/BGM/乩童之塔·舞风",100,100)#出错
复制代码
得到了一个模块,但是在第6喊bgm_play就出错了。因为方法没有定义。
现在,如何做一个类似Audio的模块?
作者: chd114    时间: 2015-1-3 17:37
SE可以同时放多个···还是说你的工程不能这样弄?
作者: taroxd    时间: 2015-1-3 17:38
https://rpg.blue/thread-256937-1-1.html

没用过,不知道好不好用
作者: hys111111    时间: 2015-1-4 14:02
taroxd 发表于 2015-1-3 17:38
https://rpg.blue/thread-256937-1-1.html

没用过,不知道好不好用


不行,先不说放不放得声音。
主要是初始化的时候就出错了,后来解决了初始化出错问题之后,试着去调用Source
  1. source = Source.new
复制代码
无论怎么调用都错。在类里面和类外面调用都错,改成全局、局部变量也不行。

代码没讲得详细需要如何调用它。




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