在屏幕上移动球 - 电晕
Moving a ball on screen - 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 函数中:(Between ****)
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 函数。
请有人可以帮助我吗?
您必须在 Corona 中明确启用多点触控事件才能使其正常工作。
您可以通过调用启用它:
system.activate( "multitouch" )
请参阅 system.activate() documentation 示例。
我在屏幕上做了两个不可见的矩形。一个在左边,一个在右边。我在中间有一个球,我希望它在我触摸它们时向左或向右移动。有用。问题:我希望如果我按下其中一个然后按下另一个(当第一个仍然按下时)它会移动另一侧但没有发生。例如:我按下右边的矩形(球向右移动),当它按下时我按下左边的矩形,但球仍然向左移动。
代码:
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 函数中:(Between ****)
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 函数。 请有人可以帮助我吗?
您必须在 Corona 中明确启用多点触控事件才能使其正常工作。 您可以通过调用启用它:
system.activate( "multitouch" )
请参阅 system.activate() documentation 示例。