2015-08-22 8 views
0

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

ответ

0

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

system.activate("multitouch") 

Смотрите system.activate() documentation для примера.

 Смежные вопросы

  • Нет связанных вопросов^_^