对任何sprite / layer / scene使用任何效果都会在CCActionScript.cpp中引起此断言:

void GridAction::cacheTargetAsGridNode()
{
    _gridNodeTarget = dynamic_cast<NodeGrid*> (_target);
    CCASSERT(_gridNodeTarget, "GridActions can only used on NodeGrid");
}


因此,由于Sprite或其他任何原语都是从Node(而不是从NodeGrid)继承的,因此此代码将无效。换句话说,示例应用程序也无法正常工作:

CCSprite* sp = CCSprite::create("title.jpg");
sp->setPosition(ccp(240, 160));
addChild(sp);
CCActionInterval* pageTurn3D = CCPageTurn3D::create(4, CCSize(20, 20));
sp->runAction(pageTurn3D);


这是Alpha限制,还是我做错了什么?

最佳答案

这是Alpha版本的限制:

*    - Limitations
[...]
 *        - GridBase actions are not supported (eg: Lens, Ripple, Twirl)
[...]

10-06 06:08