| 版权声明:本文为博主原创文章,未经博主允许不得转载。
节点是cocosd-x游戏引擎中的重要元素,是其他重要游戏元素的基类,例如,场景Scene,图层Layer,菜单Menu和精灵sprite都是继承节点类Node.
节点类以树形结构表示,可以有子节点和父节点,方便在节点中添加或者删除其他节点,节点在cocosd-x游戏引擎中的常见表现是,场景类scene作为父节点,多个图层Layer添加到场景类中,这些图层可能有背景图层,菜单图层和事件图层等,在图层类Layer中在添加若干个游戏精灵,例如:背景,积分标签,玩家精灵,敌人精灵等。节点类的树形结构图:如右
节点的主要功能:
1).每个节点都可以含有子节点
2).节点可以添加周期性回调的方法
3).节点可以添加动作
节点类使用的情况;
1).需要父节点来管理和控制一批子节点的时候
2).需要自己定义一个在屏幕上显示的对象,这时候让心定义的类继承自Node,当一个类继承自Node时,它将有如下特点:
* 重写初始化的方法和周期性回调方法
* 在时间线上控制回调
* 重写渲染的绘制方法
Node类的主要保护成员:
Node类的主要函数
函数说明:
setRotation(value); 控制节点旋转多少角度
setScale(x,y); 节点的缩放
auto mouse = Sprite::create("mouse.png"); mouse->setPosition(Vec2(visibleSize.width / 3 + origin.x, visibleSize.height / 4 + origin.y)); mouse->setScale(0.5, 0.5); //设置一个90度角的旋转 mouse->setRotation(90); this->addChild(mouse, 1);
定时器函数:
scheduleUpdate() 调度"update"方法。
它的优先级将会是0,这个方法将会在每一帧都被调用。 拥有较小优先数值的调度方法将会在有拥用较大优先数值的方法之前被调用。 每一个节点只有一"update"能够被调度(你不能够有2个“update”选择器)。
scheduleUpdateWithPriority() 使用一个自定义优先级调度"update"方法。
这个选择器将会在每一帧被调用。 拥有较小优先数值的调度方法将会在有拥用较大优先数值的方法之前被调用。 每一个节点只有一"update"能够被调度(你不能够有2个“update”选择器)。
runAction();
实现一个mouse闪烁的动作:
auto mouse = Sprite::create("mouse.png"); mouse->setPosition(160,195); mouse->setScale(0.5, 0.5); this->addChild(mouse); //创建一个闪烁的效果;下面代码表示一秒钟闪烁5次 auto blick = Blink::create(1, 5); //是闪烁重复执行 auto repeat = RepeatForever::create(blick); //执行动作 mouse->runAction(repeat);