Skip to main content
Improved formatting to properly take advantage of StackExchange syntax highlighting
Source Link
  1. To translate the hit objects and change their color when they are tapped

    To translate the hit objects and change their color when they are tapped The link below is the code I am using to for the first function http://developer.anscamobile.com/sample-code/fishies

    The link below is the code I am using to for the first function
  2. Spawn objects that will hit the translating objects on collision. Alos on collision the spawned object disappears and the translating object bears a color(indicating the collision). In addition the size of this spawned object is dependent on i/p volume level. The function I have written is as follows:

    http://developer.anscamobile.com/sample-code/fishies
     --VOICE INPUT CODE
     local r = media.newRecording()
     r:startRecording()
     r:startTuner()
    
     --local function newBar()
     --    local bar = display.newLine( 0, 0, 1, 0 ) 
     --    bar:setColor( 0, 55, 100, 20 )
     --    bar.width = 5
     --    bar.y=400
     --    bar.x=20
     --    return bar
     --end
    
     local c1 = display.newImage("str-minion-small.png")
     c1.isVisible=false
     local c2 = display.newImage("str-minion-mid.png")
     c2.isVisible=false
     local c3 = display.newImage("str-minion-big.png")
     c3.isVisible=false
    
     --SPAWNING
     local function spawnDisk( event )
         local phase = event.phase
    
         local volumeBar = display.newLine( 0, 0, 1, 0 )
         volumeBar.y =  400
         volumeBar.x = 20
         --volumeBar.isVisible=false
    
         local v = 20*math.log(r:getTunerVolume())    
         local MINTHRESH = 30
         local LEFTMARGIN = 20
         local v2 = MINTHRESH + math.max (v, -MINTHRESH)
         v2 = (display.contentWidth - 1 * LEFTMARGIN ) * v2 / MINTHRESH
         volumeBar.xScale =  math.max ( 20, v2 )
    
         local l = volumeBar.xScale
         local cnt1 = 0
         local cnt2 = 0
         local cnt3 = 0
         local ONE =1
         local val = event.numTaps
         --local px=event.x
         --local py=event.y
    
         if "ended" == phase then
             --audio.play( popSound )
             --myLabel.isVisible = false
    
             if l > 50 and l <=150 then
                 --c1:setFillColor(10,105,0)
                 --c1.isVisible=false
                 c1.x=math.random( 10, 450 )
                 c1.y=math.random( 10, 300 )
                 physics.addBody( c1, { density=1, radius=10.0 } )
                 c1.isVisible=true
                 cnt1= cnt1+ ONE
                 return c1
    
             elseif l > 100 and l <=250 then
                 --c2:setFillColor(200,10,0)
                 c2.x=math.random( 10, 450 )
                 c2.y=math.random( 10, 300 )
                 physics.addBody( c2, { density=2, radius=9000.0 } )
                 c2.isVisible=true
                 cnt2= cnt2+ ONE
                 return c2
    
             elseif l >=250 then
                 c3.x=math.random( 40, 450 )
                 c3.y=math.random( 40, 300 )
                 physics.addBody( c3, { density=2, radius=7000.0 , bounce=0.0 } )
                 c3.isVisible=true
                 cnt3= cnt3+ ONE
                 return c3
             end
         end
     end
    
     buzzR:addEventListener( "touch", spawnDisk ) -- touch the screen to create disks
    
  1. Spawn objects that will hit the translating objects on collision. Alos on collision the spawned object disappears and the translating object bears a color(indicating the collision). In addition the size of this spawned object is dependent on i/p volume level. The function I have written is as follows,

--VOICE INPUT CODE

local r = media.newRecording() r:startRecording() r:startTuner()

--local function newBar() -- local bar = display.newLine( 0, 0, 1, 0 ) -- bar:setColor( 0, 55, 100, 20 ) -- bar.width = 5 -- bar.y=400 -- bar.x=20 -- return bar --end

local c1 = display.newImage("str-minion-small.png") c1.isVisible=false local c2 = display.newImage("str-minion-mid.png") c2.isVisible=false local c3 = display.newImage("str-minion-big.png") c3.isVisible=false --SPAWNING local function spawnDisk( event ) local phase = event.phase

local volumeBar = display.newLine( 0, 0, 1, 0 )

volumeBar.y = 400 volumeBar.x = 20 -- volumeBar.isVisible=false

local v = 20*math.log(r:getTunerVolume())    
local MINTHRESH = 30
local LEFTMARGIN = 20
local v2 = MINTHRESH + math.max (v, -MINTHRESH)
v2 = (display.contentWidth - 1 * LEFTMARGIN ) * v2 / MINTHRESH
volumeBar.xScale =  math.max ( 20, v2 )

local l = volumeBar.xScale
local cnt1 = 0
local cnt2 = 0
local cnt3 = 0
local ONE =1
local val = event.numTaps

--local px=event.x
--local py=event.y

if "ended" == phase then

    --audio.play( popSound )
    --myLabel.isVisible = false
    
    
    if l > 50 and l <=150 then
    
        --  c1:setFillColor(10,105,0)
         -- c1.isVisible=false
           c1.x=math.random( 10, 450 )
           c1.y=math.random( 10, 300 )
          physics.addBody( c1, { density=1, radius=10.0 } )
            c1.isVisible=true
            cnt1= cnt1+ ONE
            return c1
    
    elseif l > 100 and l <=250 then
        


          --c2:setFillColor(200,10,0)
          c2.x=math.random( 10, 450 )
          c2.y=math.random( 10, 300 )
           
           
           
          
physics.addBody( c2, { density=2, radius=9000.0 } )
    
            c2.isVisible=true
            cnt2= cnt2+ ONE
            
            return c2
            
            
       elseif l >=250 then
        
          

        
         
           c3.x=math.random( 40, 450 )

c3.y=math.random( 40, 300 )

            physics.addBody( c3, { density=2, radius=7000.0 , bounce=0.0 } )
    
            c3.isVisible=true
            cnt3= cnt3+ ONE
            return c3

    end
    



    
end

end

buzzR:addEventListener( "touch", spawnDisk ) -- touch the screen to create disks

Now both functions work fine independently but there is no collision happening. Its almost as if the translating object and the spawn object are on different layers. The translating object passes through the spawn object freely.

Its my first attempt at game development, that too for a mobile platform so would appreciate all help. Also if I have not been specific do let me know. I llI'll try to frame the query better :).

  1. To translate the hit objects and change their color when they are tapped The link below is the code I am using to for the first function http://developer.anscamobile.com/sample-code/fishies
  1. Spawn objects that will hit the translating objects on collision. Alos on collision the spawned object disappears and the translating object bears a color(indicating the collision). In addition the size of this spawned object is dependent on i/p volume level. The function I have written is as follows,

--VOICE INPUT CODE

local r = media.newRecording() r:startRecording() r:startTuner()

--local function newBar() -- local bar = display.newLine( 0, 0, 1, 0 ) -- bar:setColor( 0, 55, 100, 20 ) -- bar.width = 5 -- bar.y=400 -- bar.x=20 -- return bar --end

local c1 = display.newImage("str-minion-small.png") c1.isVisible=false local c2 = display.newImage("str-minion-mid.png") c2.isVisible=false local c3 = display.newImage("str-minion-big.png") c3.isVisible=false --SPAWNING local function spawnDisk( event ) local phase = event.phase

local volumeBar = display.newLine( 0, 0, 1, 0 )

volumeBar.y = 400 volumeBar.x = 20 -- volumeBar.isVisible=false

local v = 20*math.log(r:getTunerVolume())    
local MINTHRESH = 30
local LEFTMARGIN = 20
local v2 = MINTHRESH + math.max (v, -MINTHRESH)
v2 = (display.contentWidth - 1 * LEFTMARGIN ) * v2 / MINTHRESH
volumeBar.xScale =  math.max ( 20, v2 )

local l = volumeBar.xScale
local cnt1 = 0
local cnt2 = 0
local cnt3 = 0
local ONE =1
local val = event.numTaps

--local px=event.x
--local py=event.y

if "ended" == phase then

    --audio.play( popSound )
    --myLabel.isVisible = false
    
    
    if l > 50 and l <=150 then
    
        --  c1:setFillColor(10,105,0)
         -- c1.isVisible=false
           c1.x=math.random( 10, 450 )
           c1.y=math.random( 10, 300 )
          physics.addBody( c1, { density=1, radius=10.0 } )
            c1.isVisible=true
            cnt1= cnt1+ ONE
            return c1
    
    elseif l > 100 and l <=250 then
        


          --c2:setFillColor(200,10,0)
          c2.x=math.random( 10, 450 )
          c2.y=math.random( 10, 300 )
           
           
           
          
physics.addBody( c2, { density=2, radius=9000.0 } )
    
            c2.isVisible=true
            cnt2= cnt2+ ONE
            
            return c2
            
            
       elseif l >=250 then
        
          

        
         
           c3.x=math.random( 40, 450 )

c3.y=math.random( 40, 300 )

            physics.addBody( c3, { density=2, radius=7000.0 , bounce=0.0 } )
    
            c3.isVisible=true
            cnt3= cnt3+ ONE
            return c3

    end
    



    
end

end

buzzR:addEventListener( "touch", spawnDisk ) -- touch the screen to create disks

Now both functions work fine independently but there is no collision happening. Its almost as if the translating object and the spawn object are on different layers. The translating object passes through the spawn object freely.

Its my first attempt at game development, that too for a mobile platform so would appreciate all help. Also if I have not been specific do let me know. I ll try to frame the query better :).

  1. To translate the hit objects and change their color when they are tapped The link below is the code I am using to for the first function http://developer.anscamobile.com/sample-code/fishies

  2. Spawn objects that will hit the translating objects on collision. Alos on collision the spawned object disappears and the translating object bears a color(indicating the collision). In addition the size of this spawned object is dependent on i/p volume level. The function I have written is as follows:

     --VOICE INPUT CODE
     local r = media.newRecording()
     r:startRecording()
     r:startTuner()
    
     --local function newBar()
     --    local bar = display.newLine( 0, 0, 1, 0 ) 
     --    bar:setColor( 0, 55, 100, 20 )
     --    bar.width = 5
     --    bar.y=400
     --    bar.x=20
     --    return bar
     --end
    
     local c1 = display.newImage("str-minion-small.png")
     c1.isVisible=false
     local c2 = display.newImage("str-minion-mid.png")
     c2.isVisible=false
     local c3 = display.newImage("str-minion-big.png")
     c3.isVisible=false
    
     --SPAWNING
     local function spawnDisk( event )
         local phase = event.phase
    
         local volumeBar = display.newLine( 0, 0, 1, 0 )
         volumeBar.y =  400
         volumeBar.x = 20
         --volumeBar.isVisible=false
    
         local v = 20*math.log(r:getTunerVolume())    
         local MINTHRESH = 30
         local LEFTMARGIN = 20
         local v2 = MINTHRESH + math.max (v, -MINTHRESH)
         v2 = (display.contentWidth - 1 * LEFTMARGIN ) * v2 / MINTHRESH
         volumeBar.xScale =  math.max ( 20, v2 )
    
         local l = volumeBar.xScale
         local cnt1 = 0
         local cnt2 = 0
         local cnt3 = 0
         local ONE =1
         local val = event.numTaps
         --local px=event.x
         --local py=event.y
    
         if "ended" == phase then
             --audio.play( popSound )
             --myLabel.isVisible = false
    
             if l > 50 and l <=150 then
                 --c1:setFillColor(10,105,0)
                 --c1.isVisible=false
                 c1.x=math.random( 10, 450 )
                 c1.y=math.random( 10, 300 )
                 physics.addBody( c1, { density=1, radius=10.0 } )
                 c1.isVisible=true
                 cnt1= cnt1+ ONE
                 return c1
    
             elseif l > 100 and l <=250 then
                 --c2:setFillColor(200,10,0)
                 c2.x=math.random( 10, 450 )
                 c2.y=math.random( 10, 300 )
                 physics.addBody( c2, { density=2, radius=9000.0 } )
                 c2.isVisible=true
                 cnt2= cnt2+ ONE
                 return c2
    
             elseif l >=250 then
                 c3.x=math.random( 40, 450 )
                 c3.y=math.random( 40, 300 )
                 physics.addBody( c3, { density=2, radius=7000.0 , bounce=0.0 } )
                 c3.isVisible=true
                 cnt3= cnt3+ ONE
                 return c3
             end
         end
     end
    
     buzzR:addEventListener( "touch", spawnDisk ) -- touch the screen to create disks
    

Now both functions work fine independently but there is no collision happening. Its almost as if the translating object and the spawn object are on different layers. The translating object passes through the spawn object freely.

Its my first attempt at game development, that too for a mobile platform so would appreciate all help. Also if I have not been specific do let me know. I'll try to frame the query better :).

Tweeted twitter.com/#!/StackGameDev/status/62080724353810432
Source Link

Help with Collision of spawned object(postion fixed) with objects that there are translating on screen

Hey guys I am creating a game using Corona SDK and so coding it in Lua. So there are 2 separate functions,

  1. To translate the hit objects and change their color when they are tapped The link below is the code I am using to for the first function http://developer.anscamobile.com/sample-code/fishies
  1. Spawn objects that will hit the translating objects on collision. Alos on collision the spawned object disappears and the translating object bears a color(indicating the collision). In addition the size of this spawned object is dependent on i/p volume level. The function I have written is as follows,

--VOICE INPUT CODE

local r = media.newRecording() r:startRecording() r:startTuner()

--local function newBar() -- local bar = display.newLine( 0, 0, 1, 0 ) -- bar:setColor( 0, 55, 100, 20 ) -- bar.width = 5 -- bar.y=400 -- bar.x=20 -- return bar --end

local c1 = display.newImage("str-minion-small.png") c1.isVisible=false local c2 = display.newImage("str-minion-mid.png") c2.isVisible=false local c3 = display.newImage("str-minion-big.png") c3.isVisible=false --SPAWNING local function spawnDisk( event ) local phase = event.phase

local volumeBar = display.newLine( 0, 0, 1, 0 )

volumeBar.y = 400 volumeBar.x = 20 -- volumeBar.isVisible=false

local v = 20*math.log(r:getTunerVolume())    
local MINTHRESH = 30
local LEFTMARGIN = 20
local v2 = MINTHRESH + math.max (v, -MINTHRESH)
v2 = (display.contentWidth - 1 * LEFTMARGIN ) * v2 / MINTHRESH
volumeBar.xScale =  math.max ( 20, v2 )

local l = volumeBar.xScale
local cnt1 = 0
local cnt2 = 0
local cnt3 = 0
local ONE =1
local val = event.numTaps

--local px=event.x
--local py=event.y

if "ended" == phase then

    --audio.play( popSound )
    --myLabel.isVisible = false
    
    
    if l > 50 and l <=150 then
    
        --  c1:setFillColor(10,105,0)
         -- c1.isVisible=false
           c1.x=math.random( 10, 450 )
           c1.y=math.random( 10, 300 )
          physics.addBody( c1, { density=1, radius=10.0 } )
            c1.isVisible=true
            cnt1= cnt1+ ONE
            return c1
    
    elseif l > 100 and l <=250 then
        


          --c2:setFillColor(200,10,0)
          c2.x=math.random( 10, 450 )
          c2.y=math.random( 10, 300 )
           
           
           
          
physics.addBody( c2, { density=2, radius=9000.0 } )
    
            c2.isVisible=true
            cnt2= cnt2+ ONE
            
            return c2
            
            
       elseif l >=250 then
        
          

        
         
           c3.x=math.random( 40, 450 )

c3.y=math.random( 40, 300 )

            physics.addBody( c3, { density=2, radius=7000.0 , bounce=0.0 } )
    
            c3.isVisible=true
            cnt3= cnt3+ ONE
            return c3

    end
    



    
end

end

buzzR:addEventListener( "touch", spawnDisk ) -- touch the screen to create disks

Now both functions work fine independently but there is no collision happening. Its almost as if the translating object and the spawn object are on different layers. The translating object passes through the spawn object freely.

Can anyone please tell me how to resolve this problem. And how can I get them to collide.

Its my first attempt at game development, that too for a mobile platform so would appreciate all help. Also if I have not been specific do let me know. I ll try to frame the query better :).

Thanks in advance.