码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2d-x + Lua的cc.Repeat动画执行次数不准,巨坑

时间:2015-08-01 19:04:20      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:cocos2d   lua   

Repeat这个Action的本意是可以方便地对某一个动画执行指定的次数,比如这段代码:

  
scene.index           = 0
	--延时
  local delayAction     = cc.DelayTime:create(0.5)
	--回调
  local callFuncAction1 = cc.CallFunc:create(function()
    scene.index = scene.index + 1

    cclog("index: %d", scene.index)
  end)
	--序列
  local sequenceAction  = cc.Sequence:create(delayAction, callFuncAction1)
	--重复
  local repeatAction    = cc.Repeat:create(sequenceAction, 2)

  scene.action1         = scene:runAction(repeatAction)

它的执行结果是:

cocos2d: [LUA-print] index: 1
cocos2d: [LUA-print] index: 2

执行了两次,不错。尝试将次数从2改为3:

  
local repeatAction    = cc.Repeat:create(sequenceAction, 3)

执行结果是:

cocos2d: [LUA-print] index: 1
cocos2d: [LUA-print] index: 2
cocos2d: [LUA-print] index: 3

嗯,3次,不错。现在,见证奇迹的时刻到了,把delayAction的0.5秒改为0.1秒,保持次数依然为3次不变:

  local delayAction     = cc.DelayTime:create(0.5)
  ...
  local repeatAction    = cc.Repeat:create(sequenceAction, 3)

再次执行,结果居然是执行了4次!!

cocos2d: [LUA-print] index: 1
cocos2d: [LUA-print] index: 2
cocos2d: [LUA-print] index: 3
cocos2d: [LUA-print] index: 4

研究许久,无任何结论,巨坑一个,甚至有些情况下在CallFunc内去stopAction都不起作用,简单来说,就是珍爱生命,远离Repeat这个神经病。

版权声明:本文为博主原创文章,未经博主允许不得转载。

cocos2d-x + Lua的cc.Repeat动画执行次数不准,巨坑

标签:cocos2d   lua   

原文地址:http://blog.csdn.net/y6300023290/article/details/47188305

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!