向量指的是指具有大小和方向的量,在计算方向角度等有奇效。cocos creator中针对向量有专门的计算方法,十分好用。其中的有很多妙用。

官方案例

update: function (dt) {
        if (!this.isMoving) return;
        var oldPos = this.follower.position;
        // get move direction
        var direction = cc.pNormalize(cc.pSub(this.moveToPos, oldPos));
        // multiply direction with distance to get new position
        var newPos = cc.pAdd(oldPos, cc.pMult(direction, this.followSpeed * dt));
        // set new position
        this.follower.setPosition(newPos);
    }

以上是每一帧都会运行的钩子方法,其中cc.pNormalize()是返回一个长度为 1 的标准化过后的向量,cc.pSub()是向量相减可以得出带有方向的向量,利用标准化方法可以直接放回一个“方向”。cc.pAdd()是向量相加,cc.pMult()是向量缩放,这里利用设定好的速度参数乘以标准化之后的“方向”,再加上旧的向量,则可以得出一个新的向量坐标,最后实现的效果就是follower这个node会不停的朝得出的“方向”按照我们设定的速度进行移动。

其他更多关于向量的用法可前往http://docs.cocos.com/creator/api/zh/modules/cc.html 进行查看。