cocos2d-x 2.0 小心CCNode::setVisible,一不小心就看不见了
来源:互联网 发布:游戏编程软件下载 编辑:程序博客网 时间:2024/04/27 17:48
先创建,隐藏在后台,需要时再显示,这个流程小心节点看不见
class CTestLayer{
CCSprite * m_pTestSprite;
void onEnter()
{
m_pTestSprite = CCSprite::create("XXX");
m_pTestSprite->setVisible(false); //此时我不想显示
this->addChild(m_pTestSprite);
}
bool ccTouchBegan(cocos2d::CCTouch* touch, cocos2d::CCEvent* event)
{
//理论上,调用这个,精灵就能显示,实际上还是看不见
//因为没弄脏不重绘
m_pTestSprite->setVisible(true);
//所以最简单弄脏的方法,就是重置一下坐标点
m_pTestSprite->setPosition(m_pTestSprite->getPosition()); //m_bIsTransformDirty = m_bIsInverseDirty = true;
return false;
}
}
其实我想的做法,应该是CCNode::setVisible(TRUE)时,应该设置m_bIsTransformDirty = m_bIsInverseDirty = true
同时,把所有子节点的m_bIsTransformDirty = m_bIsInverseDirty = true;
CCNode::setVisible(bool bVisible)
{
bool bChange = m_bIsVisible == bVisible);
m_bIsVisible = bVisible;
if(bChange && bVisible)
{
//弄脏自身
this->setPosition(this->getPosition());
//弄脏所有子节点
CCArray * pChildArr = CCNode::getChildren();
for(int i = 0; i < pChildArr->count(); ++i)
{
CCNode * thisChild = (CCNode *)pChildArr->objectAtIndex(i);
thisChild->setPosition(thisChild->getPosition());
}
}
}
- cocos2d-x 2.0 小心CCNode::setVisible,一不小心就看不见了
- cocos2d-x CCNode类
- Cocos2d-x基础:CCNode
- 4.cocos2d-x CCNode
- 【Cocos2d-x】CCNode
- 【大学生活】一不小心就迷茫了
- cocos2d-x学习笔记-CCNode
- [cocos2d-x] --- CCNode类详解
- cocos2d-x学习笔记-CCNode
- [cocos2d-x] --- CCNode类详解
- cocos2d-x API学习---CCNode
- [cocos2d-x] --- CCNode类详解
- cocos2d-x学习笔记-CCNode
- [cocos2d-x] --- CCNode类详解
- Cocos2d-x之CCNode类
- 就这样一不小心,Python就火了
- 不敢发了,一不小心就没有了
- cocos2d-x lua 黑人小心了 项目实践
- php 分页代码的封装
- 虚函数、抽象函数、抽象类、接口
- 联想ThinkPad E40安装XP系统
- Java关键字及其作用
- UCGUI在STM32平台移植经验(无操作系统)
- cocos2d-x 2.0 小心CCNode::setVisible,一不小心就看不见了
- Linux-yum配置
- STM32开发环境(工具)之Keil MDK 介绍
- sqlite笔记
- 问题八十三:Quicksum
- Native调用Java模块
- 数据挖掘领域的十大挑战性问题
- 黑马程序员---线程的升级处理方案,线程的停止以及线程的一般写法
- 进程与线程的一个简单解释