• Cocos2d-x 学习笔记(11.5) SkewTo SkewBy


    1. SkewTo SkewBy

    node朝X和Y方向的歪斜。SkewTo是SkewBy的父类。

    1.1 成员变量 create方法

     // 两者成员变量一致
        float _skewX; 
        float _skewY;
        float _startSkewX; // startWithTarget
        float _startSkewY;//
        float _endSkewX; // create参数
        float _endSkewY; //
        float _deltaX; // startWithTarget
        float _deltaY; // 

    SkewTo的_skewX和_skewY在构造函数默认为0。

    SkewBy的_skewX和_skewY在init方法中用create的参数设置,即当前的斜值。还在startWithTarget方法中用到。

    1.2 startWithTarget

    SkewTo:

    ActionInterval::startWithTarget(target);
    _startSkewX = target->getSkewX();

    当前X方向的斜值作为_startSkewX。

        if (_startSkewX > 0)
        {
            _startSkewX = fmodf(_startSkewX, 180.f);
        }
        else
        {
            _startSkewX = fmodf(_startSkewX, -180.f);
        }
    
        _deltaX = _endSkewX - _startSkewX;

    X方向斜值要对+-180度求余,超过180度的斜值与求余后的斜值效果一致。(?)

    重新计算_deltaX,使用了“就近原则”,同旋转动作一样:

    if (_deltaX > 180)
        {
            _deltaX -= 360;
        }
        if (_deltaX < -180)
        {
            _deltaX += 360;
        }

    Y方向斜值要对+-360度求余(?)

        _startSkewY = target->getSkewY();
    
        if (_startSkewY > 0)
        {
            _startSkewY = fmodf(_startSkewY, 360.f);
        }
        else
        {
            _startSkewY = fmodf(_startSkewY, -360.f);
        }
    
        _deltaY = _endSkewY - _startSkewY;
    
    // 就近原则
    if (_deltaY > 180) { _deltaY -= 360; } if (_deltaY < -180) { _deltaY += 360; }

    SkewBy:

    设置的斜值加上开始的斜值作为_endSkewX。

    用_skewX(create参数的斜值)对_deltaX进行设置可以理解。计算_endSkewX用不知道有何意义?

        SkewTo::startWithTarget(target);
        _deltaX = _skewX;
        _deltaY = _skewY;
        _endSkewX = _startSkewX + _deltaX;
        _endSkewY = _startSkewY + _deltaY;
  • 相关阅读:
    python中range函数与列表中删除元素
    python碎片记录(一)
    Coursera在线学习---第八节.K-means聚类算法与主成分分析(PCA)
    Coursera在线学习---第七节.支持向量机(SVM)
    Coursera在线学习---第六节.构建机器学习系统
    Coursera在线学习---第五节.Logistic Regression
    梯度下降法与迭代结束条件
    利用并查集求最大生成树和最小生成树(nlogn)
    字符串二分查找
    map容器
  • 原文地址:https://www.cnblogs.com/deepcho/p/cocos2dx-action-skewto-skewby.html
Copyright © 2020-2023  润新知