一。问题描述
今天在写游戏的时候,为了统一动画和攻击的时间,我取消了原先依靠时间来同步的想法(太烂了,总是不协调)。所以就上网搜了下,看看cocos2d-x中有没有提供这样的方法(汗。。。初学当中ing......)。很快就搜到了一篇文章,说是使用CCSprite中的displayFrame方法返回正在播放的动画帧,然后调用CCAnimate中的getFrames方法来获取正在播放动画的所有的CCSpriteFrame*帧,之后就可以通过指针比较来进行了。这个方法,文章的作者也发现了有点问题,所以在后面给出了改进的地方,displayFrame返回的实际上是新建的一个CCSpriteFrame,而不是原来的CCSpriteFrame*,说的抽象,看代码:
CCSpriteFrame* CCSprite::displayFrame(void)
{
return CCSpriteFrame::createWithTexture(m_pobTexture,
CC_RECT_POINTS_TO_PIXELS(m_obRect),
m_bRectRotated,
CC_POINT_POINTS_TO_PIXELS(m_obUnflippedOffsetPositionFromCenter),
CC_SIZE_POINTS_TO_PIXELS(m_obConten
{
return CCSpriteFrame::createWithTexture(m_pobTexture,
CC_RECT_POINTS_TO_PIXELS(m_obRect),
m_bRectRotated,
CC_POINT_POINTS_TO_PIXELS(m_obUnflippedOffsetPositionFromCenter),
CC_SIZE_POINTS_TO_PIXELS(m_obConten