菜鸟求助,大神快来啊

我想实现这样一个功能:按一下按钮,精灵就会旋转90°,连续按N下精灵就旋转N*90°。
谁有妙计??各种我所能想到的方法都试过了,还不行。快崩溃了。:3:

这种只是逻辑上的问题。
在指定的时间内检测点了多少次,然后再旋转N*90度。

我觉得不能点一次就调用一次旋转,因为会把之前的给停掉的吧,个人认为!

我还没学会用cocos,个人想法是可以建个消息队列,旋转一次完成后再从消息队列里面读,再执行

我用了一个vector<Sequence > action来存储Sequence ,每按一次按钮就用RotateBy和CallFunc来创建一个Sequence*,然后存入action中,CallFunc用来释放action中执行完毕的
Sequence*。最后出问题了,不明白。

这个真不懂。:12:

— Begin quote from ____

引用第3楼王不留行于2014-10-29 17:18发表的 回 1楼(zhouciming) 的帖子 :
我用了一个vector<Sequence > action来存储Sequence ,每按一次按钮就用RotateBy和CallFunc来创建一个Sequence*,然后存入action中,CallFunc用来释放action中执行完毕的
Sequence*。最后出问题了,不明白。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=236688&pid=1085760

— End quote

这得看你的代码具体是怎么写了,runAction是运行一个action,如果这个动作没执行完你又触发了一次这个按钮,我觉得之前的动作应该会被取消才对。因为这种动作不太可能是阻塞式的吧,否则无法快速响应用户的点击事件了!

你是想同时执行还是依次执行?
我觉得如果依次执行的话可以加两个变量AB。A用来计时,B表示“最晚结束的动作的结束时间”。

应该不会取消的,会一起执行。比如同时调用2次在0.5秒时间旋转90度,那么就会在0.5秒旋转180度。所以如果不是同时调用的话,旋转会时快时慢。(因为有的执行完了)

update里自己设置精灵的旋转角度,记录点了几次,判断达到旋转的角度停止

会取消的,如果两次调用的间隔很短的话它实际上选择角度小于180°,第一次旋转不完整

你指的是用默认调度器,每帧判断一次?我在update里用RotateTo进行旋转,一次90°,时间是1秒,但是精灵完全不转。这是不是因为每帧间隔太短,导致动作还没执行就被打断了。

— Begin quote from ____

引用第10楼王不留行于2014-10-29 22:53发表的 回 8楼(孤独の快乐) 的帖子 :
你指的是用默认调度器,每帧判断一次?我在update里用RotateTo进行旋转,一次90°,时间是1秒,但是精灵完全不转。这是不是因为每帧间隔太短,导致动作还没执行就被打断了。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=236688&pid=1085939

— End quote

恩,自己每帧设置下旋转的角度,不要用action,直接setRotation

这种需求,不要用animatin做吧。
animation是和时间相关的。

问题解决了,参考的是八楼的方法,谢谢大家!:870: