SoundChannel:setWorldPosition
From GiderosMobile
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Available since: Gideros 2016.10
Class: SoundChannel
Description
Sets the position of the sound in a 3D world.
SoundChannel:setWorldPosition(x,y,z,vx,vy,vz)
Parameters
x: (number) sound x coordinate
y: (number) sound y coordinate
z: (number) sound z coordinate optional
vx: (number) sound velocity x component optional
vy: (number) sound velocity y component optional
vz: (number) sound velocity z component optional
Example
local audioScale=0.02
local scrW,scrH=application:getContentWidth(),application:getContentHeight()
Sound.setListenerPosition(scrW*audioScale/2,scrH*audioScale/2,0,0,0,0,0,1,0,0,0,1)
local dot1 = Bitmap.new(Texture.new("1.png"))
dot1:setAnchorPoint(0.5, 0.5)
local dot2 = Bitmap.new(Texture.new("2.png"))
dot2:setAnchorPoint(0.5, 0.5)
local snd1=Sound.new("1.wav")
dot1.sndchn=snd1:play(0,true,true)
local snd2=Sound.new("2.wav")
dot2.sndchn=snd2:play(0,true,true)
local dots = {dot1, dot2}
local function onTouchesBegin(event)
local dot = dots[event.touch.id]
if dot then
stage:addChild(dot)
dot:setPosition(event.touch.x, event.touch.y)
dot.sndchn:setWorldPosition(event.touch.x*audioScale, event.touch.y*audioScale)
dot.sndchn:setPaused(false)
end
end
local function onTouchesMove(event)
local dot = dots[event.touch.id]
if dot then
dot:setPosition(event.touch.x, event.touch.y)
dot.sndchn:setWorldPosition(event.touch.x*audioScale, event.touch.y*audioScale)
end
end
local function onTouchesEnd(event)
local dot = dots[event.touch.id]
if dot and stage:contains(dot) then
stage:removeChild(dot)
dot.sndchn:setPaused(true)
end
end
local function onTouchesCancel(event)
local dot = dots[event.touch.id]
if dot and stage:contains(dot) then
stage:removeChild(dot)
dot.sndchn:setPaused(true)
end
end
stage:addEventListener(Event.TOUCHES_BEGIN, onTouchesBegin)
stage:addEventListener(Event.TOUCHES_MOVE, onTouchesMove)
stage:addEventListener(Event.TOUCHES_END, onTouchesEnd)
stage:addEventListener(Event.TOUCHES_CANCEL, onTouchesCancel)
- SoundChannel:getPitch
- SoundChannel:getPosition
- SoundChannel:getStreamId
- SoundChannel:getVolume
- SoundChannel:isLooping
- SoundChannel:isPaused
- SoundChannel:isPlaying
- SoundChannel:setEffect
- SoundChannel:setLooping
- SoundChannel:setPaused
- SoundChannel:setPitch
- SoundChannel:setPosition
- SoundChannel:setVolume
- SoundChannel:setWorldPosition
- SoundChannel:stop