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