zoukankan      html  css  js  c++  java
  • cocos2dx 3.3多相机下_transformUpdated bug

    uint32_t Node::processParentFlags(const Mat4& parentTransform, uint32_t parentFlags)

    {

        if(_usingNormalizedPosition) {

            CCASSERT(_parent, "setNormalizedPosition() doesn't work with orphan nodes");

            if ((parentFlags & FLAGS_CONTENT_SIZE_DIRTY) || _normalizedPositionDirty) {

                auto s = _parent->getContentSize();

                _position.x = _normalizedPosition.x * s.width;

                _position.y = _normalizedPosition.y * s.height;

                _transformUpdated = _transformDirty = _inverseDirty = true;

                _normalizedPositionDirty = false;

            }

        }

        

        uint32_t flags = parentFlags;

        flags |= (_transformUpdated ? FLAGS_TRANSFORM_DIRTY : 0);

        flags |= (_contentSizeDirty ? FLAGS_CONTENT_SIZE_DIRTY : 0);

        

        if(flags & FLAGS_DIRTY_MASK)

            _modelViewTransform = this->transform(parentTransform);

        _transformUpdated = false;

        _contentSizeDirty = false;

        return flags;

    }

     改成:

    uint32_t Node::processParentFlags(const Mat4& parentTransform, uint32_t parentFlags)

    {

        if(_usingNormalizedPosition) {

            CCASSERT(_parent, "setNormalizedPosition() doesn't work with orphan nodes");

            if ((parentFlags & FLAGS_CONTENT_SIZE_DIRTY) || _normalizedPositionDirty) {

                auto s = _parent->getContentSize();

                _position.x = _normalizedPosition.x * s.width;

                _position.y = _normalizedPosition.y * s.height;

                _transformUpdated = _transformDirty = _inverseDirty = true;

                _normalizedPositionDirty = false;

            }

        }

        

        uint32_t flags = parentFlags;

        flags |= (_transformUpdated ? FLAGS_TRANSFORM_DIRTY : 0);

        flags |= (_contentSizeDirty ? FLAGS_CONTENT_SIZE_DIRTY : 0);

        

        if(flags & FLAGS_DIRTY_MASK)

            _modelViewTransform = this->transform(parentTransform);

        if(isVisitableByVisitingCamera())//if the camera is not match this node, do not consume _transformUpdated.  [wantnon,  yuanotes]. see: https://github.com/cocos2d/cocos2d-x/issues/10063

        {

            _transformUpdated = false;

            _contentSizeDirty = false;

        }

        return flags;

    }

     

  • 相关阅读:
    js模版引擎Mustache介绍
    springMVC学习篇
    MyBatis参数传入集合之foreach动态sql
    eclipse注册码生成,在eclipse3.3.x上测试可用
    B
    jAVA笔记二
    J 分班(class)(NYIST 2019年校赛)
    H 幻方变换(puzzle)(NYIST 2019年校赛)
    E 旅游方案(travel)(南阳理工学院2019年校赛)
    ACM Computer Factory(网络流 POJ 3436,这可是我第一次写网络流)
  • 原文地址:https://www.cnblogs.com/wantnon/p/4341579.html
Copyright © 2011-2022 走看看