Перемещение мяча по экрану - cororna

Я сделал два невидимых прямоугольника на экране. один с левой стороны и один с правой стороны. У меня есть мяч посередине, и я хочу, чтобы он двигался влево или вправо, когда я касаюсь их. Оно работает. Проблема: я хочу, чтобы, если я нажму один из них, а после этого я нажму другой (пока первый все еще нажат), он переместит другую сторону, но этого не произошло. например: Я нажимаю на правый прямоугольник (Шарик движется вправо) и пока он нажат, я нажимаю на левый прямоугольник, но мяч все равно движется влево.

код:

function moveLeft( e )
    if (circle.x>_W*0.031 ) then
    if (e.phase=="began") then
    circle:setLinearVelocity( -800*v_circle, 0 )
    end
    if (e.phase=="ended") then
    circle:setLinearVelocity( 0, 0 )
    end 
    if (e.x>_W*0.44) then
    circle:setLinearVelocity( 0, 0 )
    end
end
end

function moveRight( e )
    if (circle.x<_W*0.969) then
    if (e.phase=="began") then
    circle:setLinearVelocity( 800*v_circle, 0 )
    end
    if (e.phase=="ended") then
    circle:setLinearVelocity( 0, 0 )
    end 
    if (e.x<_W*0.556) then
    circle:setLinearVelocity( 0, 0 )
    end
    end
end

    clickLeft = display.newRect( _W*0.212, _H/2, _W*0.7, _H*1.2 )
    clickRight = display.newRect( _W*0.78, _H/2, _W*0.7, _H*1.2 )
    clickLeft.isVisible = false
    clickRight.isVisible = false
    clickLeft:addEventListener( "touch", moveLeft )
    clickRight:addEventListener( "touch", moveRight )

Я нашел больше - я поместил этот код в функцию moveLeft: (Между ****)

function moveLeft( e )
    if (circle.x>_W*0.031 ) then
    if (e.phase=="began") then
    circle:setLinearVelocity( -800*v_circle, 0 )
    **** txt = display.newText("@@@@@@@", _W/2, _H*0.57, "Wekar" , 115 ) ****
    end
    if (e.phase=="ended") then
    circle:setLinearVelocity( 0, 0 )
    end 
    if (e.x>_W*0.44) then
    circle:setLinearVelocity( 0, 0 )
    end
end
end

И если я нажимаю правый прямоугольник, а после этого нажимаю левый (пока первый еще нажат), он ничего не показывает. А именно, в этой ситуации он даже не попадает в функцию moveLefr. пожалуйста, кто-нибудь может мне помочь?


person idan ahal    schedule 22.08.2015    source источник


Ответы (1)


Вы должны явно включить мультитач-события в Corona, чтобы заставить это работать. Вы включаете его, вызывая:

system.activate( "multitouch" )

Пример см. в документации system.activate().

person johlo    schedule 25.08.2015