对任何精灵/图层/场景使用任何效果总是会在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限制,还是我做错了什么?
答案 0 :(得分:1)
这是alpha版本的限制:
* - Limitations
[...]
* - GridBase actions are not supported (eg: Lens, Ripple, Twirl)
[...]