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