本实例演示了同时使用CCRotateTo,CCSkewTo,CCScaleTo来实现动态效果,代码如下
CCSize boxSize = CCSizeMake(100.0f, 100.0f); //在场景中添加一个背景为黄色的矩形 CCLayerColor *box = CCLayerColor::create(ccc4(255, 255, 0, 255)); box->setAnchorPoint(ccp(0, 0)); box->setPosition(ccp(190, 110)); box->setContentSize(boxSize); //在上面的黄色矩形左上角添加一个矩形 static float markrside = 10.0f; CCLayerColor *uL = CCLayerColor::create(ccc4(255, 0, 0, 255)); box->addChild(uL); uL->setContentSize(CCSizeMake(markrside, markrside)); uL->setPosition(ccp(0.f, boxSize.height - markrside)); uL->setAnchorPoint(ccp(0, 0)); //在上面的黄色矩形右上角添加一个矩形 CCLayerColor *uR = CCLayerColor::create(ccc4(0, 0, 255, 255)); box->addChild(uR); uR->setContentSize(CCSizeMake(markrside, markrside)); uR->setPosition(ccp(boxSize.width - markrside, boxSize.height - markrside)); uR->setAnchorPoint(ccp(0, 0)); addChild(box); //使用CCRotateTo,CCSkewTo,CCScaleTo来实现动态效果 CCActionInterval *actionTo = CCSkewTo::create(2, 0.f, 2.f); CCActionInterval *rotateTo = CCRotateTo::create(2, 61.0f); CCActionInterval *actionScaleTo = CCScaleTo::create(2, -0.44f, 0.47f); CCActionInterval *actionScaleToBack = CCScaleTo::create(2, 1.0f, 1.0f); CCActionInterval *rotateToBack = CCRotateTo::create(2, 0); CCActionInterval *actionToBack = CCSkewTo::create(2, 0, 0); box->runAction(CCSequence::create(actionTo, actionToBack, NULL)); box->runAction(CCSequence::create(rotateTo, rotateToBack, NULL)); box->runAction(CCSequence::create(actionScaleTo, actionScaleToBack, NULL));
效果图如下:
本文链接:
http://xiandanboke.com.cn/?p=889转载请注明转自
咸蛋博客