Использование любого эффекта для любого спрайта / слоя / сцены всегда вызывает это утверждение в 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);
Это альфа-ограничение или я что-то не так делаю?
Это ограничение альфа-версии:
* - Limitations
[...]
* - GridBase actions are not supported (eg: Lens, Ripple, Twirl)
[...]
Других решений пока нет …