我正在尝试执行Ripple3D
操作:
var mySprite = new cc.Sprite(res.SPRITE);
mySprite.runAction(cc.ripple3D(5.0, cc.size(400,400), cc.p(200,200), 50, 4, 100));
但我明白了:
未捕获的TypeError:this._gridNodeTarget.getGridRect不是函数
这必须特定于cc.size()
或ripple3D
,因为对于MoveBy
或RotateBy
等操作,一切正常。
我正在使用cocos2d-javascript 3.0。编译用于Web的cocos控制台。在Google Chrome上进行测试,Mac OSX Yosemite。
答案 0 :(得分:1)
之前我没有使用过这个效果,但是看看引擎的示例文件夹中的EffectsTest.js,我看到他们使用NodeGrid来实现效果。
var node = new cc.Node();
var nodeGrid = new cc.NodeGrid();
nodeGrid.addChild(node);
nodeGrid.runAction(cc.ripple3D(duration, cc.size(32, 24), cc.p(winSize.width / 2, winSize.height / 2), 240, 4, 160););
this.addChild(nodeGrid);
// back gradient
var gradient = new cc.LayerGradient(cc.color(0, 0, 0, 255), cc.color(98, 99, 117, 255));
node.addChild(gradient);
// back image
var bg = new cc.Sprite(s_back3);
bg.x = winSize.width / 2;
bg.y = winSize.height / 2;
node.addChild(bg);
代码说明了一点,所以我希望它可以帮助你。