无法在HTML5中运行cocos2d javascript sprite的Ripple3D动作

时间:2015-09-09 06:28:29

标签: javascript html5 cocos2d-js

我正在尝试执行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,因为对于MoveByRotateBy等操作,一切正常。

我正在使用cocos2d-javascript 3.0。编译用于Web的cocos控制台。在Google Chrome上进行测试,Mac OSX Yosemite。

1 个答案:

答案 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);

代码说明了一点,所以我希望它可以帮助你。