zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    程序员需要的各种PDF格式电子书【附网盘免费下载资源地址】
    Web安全大揭秘
    tar 压缩解压命令详解
    django开发项目的部署nginx
    CentOS7安装mysql-python模块
    我的博客站点上线了
    2006
    centos7安装pip
    mysql删除匿名用户
    FilenameFilter 文件名过滤
  • 原文地址:https://www.cnblogs.com/deepcho/p/cocos2dx-action-skewto-skewby.html
Copyright © 2011-2022 走看看