使圆圈扩张直至被点击

时间:2015-04-02 17:40:50

标签: lua corona

所以我正在使用电晕,我正在尝试制作一个游戏,其圆圈越来越小,直到它点击它停止扩张,然后出现一个新的圆圈,然后开始扩张。游戏的目的是让尽可能多的圈子彼此适合。我的问题是我已经能够制作一个无限循环,以便圆圈永远变得越来越小,但现在我正试图让它变成当它点击它停止时。我已经尝试将它放在一个循环中,而点击次数是一次,然后当它的两次它将停止但它不起作用。你们能帮忙吗?

这是我现在拥有的代码,除了出现一个小圆圈外没有任何反应。

circa = display.newCircle(display.contentWidth/2, display.contentHeight/2, 20)
circa:setFillColor(noFillColor)
circa.strokeWidth=5
circa:setStrokeColor(1,0,0)

local function numberOfCircles ( event )

  if (event.numTaps==1) then
    x=1
  elseif (event.numTaps==2) then 
    x=2
  end

end

Runtime:addEventListener("enterFrame" , numberOfCircles)

while x==1 do

  i = i + 1

  local function startCircle(event)
    resize = circa.path
    circa.scale=transition.to( resize, {radius = 300, time=1000, x= event.x, y=event.y})
  end


  local function endCircle( event )
    reresize = circa.path
    circa.scale = transition.to( resize, {radius = 20, time=1000, x= event.x, y = event.y})
  end

  timer.performWithDelay(1000*i, startCircle)
  timer.performWithDelay(2000*i+1,endCircle)
end


if x == 2 then
  circa.setLinearVelocity(0, 0)
end

1 个答案:

答案 0 :(得分:1)

实现这一目标的最佳方法是在代码中进行2次更改。

首先,让我们驾驭你的无限循环。我们可以通过使用转换重复模式来实现相同的效果。

然后,我们只为您的转换添加一个标记,以便您可以通过调用transition.cancel(“tagname”)轻松取消转换。

以下是您的代码:

circa = display.newCircle(display.contentWidth/2, display.contentHeight/2, 20)
circa:setFillColor(noFillColor)
circa.strokeWidth=5
circa:setStrokeColor(1,0,0)


local scaleFactor = 300/20

transition.to(circa, {xScale=scaleFactor, yScale=scaleFactor, time=1500, transition= easing.continuousLoop,iterations=-1, tag="myTransition"})


local function onBackgroundTap(e)

    print("user clicked on background. Let's stop transition")

    transition.cancel("myTransition")

end

Runtime:addEventListener("tap", onBackgroundTap)