Source:setRelative (日本語)

LÖVE 0.9.0 から使用可能
この関数は以前のバージョンでは非対応です。

Source の座標、速度、方向および錐角がリスナーと相対的、または絶対的であるかどうかを設定します。

標準では、全てのソースは絶対的であるため LOVE に関連づけられている座標系の原点は [0, 0, 0] になります。絶対的なソースのみリスナーの座標に影響されます。音声の座標(つまり非ステレオ)はモノラルソースのみ動作することに注意してください。

関数

概要

Source:setRelative( enable )

引数

boolean enable (false)
True ならば Source の座標、速度、方向および錐角はリスナーへ相対的になりますが、 false ならば絶対的になります。

返値

ありません。

用例

絶対的ソースの実演

この用例では絶対的なソースがリスナーの位置により、どの様な影響を受けるのか実演します。

local x, y, z = 0, 0, 0;
local snd;
local relative;

function love.load()
    snd = love.audio.newSource('beep.wav', 'static')
    snd:setLooping(true);
    snd:play();

    -- 標準では音声は関連づけられていません。
    relative = snd:isRelative();
end

function love.keypressed(key)
    -- WASD によりリスナーを移動します。
    if key == 'a' then
        x = x - 1;
    elseif key == 'd' then
        x = x + 1;
    elseif key == 'w' then
        y = y - 1;
    elseif key == 's' then
        y = y + 1;
    end
    love.audio.setPosition(x, y, z);

    -- ソースに対して相対的または絶対的状態の相互切り替えをします。
    if key == 'r' then
        relative = snd:isRelative();
        snd:setRelative(not relative);
    end
end

function love.draw()
    love.graphics.print('Relative: ' .. tostring(relative), 20, 20);
    love.graphics.print('Listener: (x = ' .. x .. ', y = ' .. y .. ')', 20, 40);
end

関連



そのほかの言語