我之前一直使用的是cocos2d-js,最近在学习creator。发现变化还是很大的,有一些地方不明白。
我首先描述一下我的需求,我的游戏里面需要生成“食物”对象。食物是由外层Sprite和内层Sprite组成的。外层可以变换颜色,内层也可以变换颜色,并且有几种图案,可以根据参数生成。之前我用cocos2d-js实现的时候,是extend了Node节点,然后addChild把外层和内层都添加到这个节点上。代码大致如下:
var Food = cc.Node.extend({
ctor : function(shapeColor, patternColor, patternType) {
this._super();
this.init(shapeColor, patternColor, patternType);
},
init : function(shapeColor, patternColor, patternType) {
this.mShape = new cc.Sprite(res.food_png);
this.mShape.setColor(shapeColor);
this.addChild(this.mShape);
if (patternType == this.TYPE1) {
this.mPattern = new cc.Sprite(res.pattern1_png);
} else if (patternType == this.TYPE2) {
this.mPattern = new cc.Sprite(res.pattern2_png);
} else if (patternType == this.TYPE3) {
this.mPattern = new cc.Sprite(res.pattern3_png);
} else if (patternType == this.TYPE4) {
this.mPattern = new cc.Sprite(res.pattern4_png);
}
this.mType = patternType;
this.mPattern.setColor(patternColor);
this.addChild(this.mPattern);
}
外面调用的时候,就是var food = new Food(shapeColor, patternColor, patternType);
如果我想让食物进行动画,就直接操作food对象,就可以实现了。
如:food.runAction(cc.moveBy(100, 0));
我想请教,这种需求在cocos creator里怎么实现?一个节点只能对应一个sprite组件,那么我必须先创建一个节点,然后再以这个节点为父节点,创建两个子节点,然后再对应两个sprite组件到这两个子节点。是这样吗?还是应该用其他方式?
不知道我是否描述清楚了。
期待解答!