使用CCRenderTexture来是实现游戏的暂停
来源:互联网 发布:西门子编程电缆价格 编辑:程序博客网 时间:2024/04/30 14:42
在手机游戏中,经常会有暂停按钮,使游戏处于暂停状态,那么怎样用Cocos2d-x实现呢?
下面看一下在cocos2d-x中CCRenderTexture的用法:
CCRenderTexture类主要是用来动态创建纹理
1.指定要创建的纹理的宽高。
2.调用begin()方法//这个方法会启动OpenGL,并且接下来,任何绘图的命令都会渲染到CCRenderTexture中
,而不是画到屏幕上。
3.绘制纹理,可以使用cocos2d-x对象里已经定义好的visit方法。
4.调用end()方法//这个方法会渲染纹理,并且会关闭渲染至CCRenderTexture的通道。
当点击暂停按钮时,在方法里添加如下代码:
{
CCSize m_winSize = CCDirector::sharedDirector() -> getWinSize();
CCRenderTexture* screen = CCRenderTexture::create(m_winSize.width,m_winSize.height);
CCScene* scene = CCDirector::sharedDirector() -> getRunningScene();//获取正在运行的场景
screen -> begin();
scene -> visit();
screen -> end();
screen -> saveToFile("myCurScene.png",kCCImageFormatPng);
CCDirector::sharedDirector() -> pushScene(SetLayer::scene(screen,true));
}
然后在SetLayer类中的scene方法里,这样实现:
CCScene* SetLayer::scene(CCRenderTexture* sqr,bool isFlip)
{
CCScene* scene = CCScene::create();
CCSprite* bg = CCSprite::createWithTexture(sqr -> getSprite() -> getTexture());
bg -> setAnchorPoint(CCPointZero);
bg -> setPosition(CCPointZero);
bg -> setFilpY(isFlip);
bg -> setColor(ccGRAY);//ccc3(166,166,166);//适合暂停时阴影
scene -> addChild(bg);
SetLayer* layer = SetLayer::create();
scene -> addChild(layer);
return scene;
}
在SetLayer类中,点击继续游戏按钮时,这个方法这样实现:
CCDirector::sharedDirector() -> popScene();
最后就完成了游戏暂停按钮的使用方法。当然类似的方法还有很多,这里就不一一实现了。
下面看一下在cocos2d-x中CCRenderTexture的用法:
CCRenderTexture类主要是用来动态创建纹理
1.指定要创建的纹理的宽高。
2.调用begin()方法//这个方法会启动OpenGL,并且接下来,任何绘图的命令都会渲染到CCRenderTexture中
,而不是画到屏幕上。
3.绘制纹理,可以使用cocos2d-x对象里已经定义好的visit方法。
4.调用end()方法//这个方法会渲染纹理,并且会关闭渲染至CCRenderTexture的通道。
当点击暂停按钮时,在方法里添加如下代码:
{
CCSize m_winSize = CCDirector::sharedDirector() -> getWinSize();
CCRenderTexture* screen = CCRenderTexture::create(m_winSize.width,m_winSize.height);
CCScene* scene = CCDirector::sharedDirector() -> getRunningScene();//获取正在运行的场景
screen -> begin();
scene -> visit();
screen -> end();
screen -> saveToFile("myCurScene.png",kCCImageFormatPng);
CCDirector::sharedDirector() -> pushScene(SetLayer::scene(screen,true));
}
然后在SetLayer类中的scene方法里,这样实现:
CCScene* SetLayer::scene(CCRenderTexture* sqr,bool isFlip)
{
CCScene* scene = CCScene::create();
CCSprite* bg = CCSprite::createWithTexture(sqr -> getSprite() -> getTexture());
bg -> setAnchorPoint(CCPointZero);
bg -> setPosition(CCPointZero);
bg -> setFilpY(isFlip);
bg -> setColor(ccGRAY);//ccc3(166,166,166);//适合暂停时阴影
scene -> addChild(bg);
SetLayer* layer = SetLayer::create();
scene -> addChild(layer);
return scene;
}
在SetLayer类中,点击继续游戏按钮时,这个方法这样实现:
CCDirector::sharedDirector() -> popScene();
最后就完成了游戏暂停按钮的使用方法。当然类似的方法还有很多,这里就不一一实现了。
0 0
- 使用CCRenderTexture来是实现游戏的暂停
- Cocos2dx基础之CCRenderTexture截图保存并使用的实现
- 如何使用CCRenderTexture来创建动态纹理
- 如何使用CCRenderTexture来创建动态纹理
- 使用CCRenderTexture来创建动态纹理
- 如何使用CCRenderTexture来创建动态纹理
- 关于CCRenderTexture使用的注意事项
- 实现 iPhone 游戏暂停功能的方法
- 用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
- (译)如何使用CCRenderTexture来创建动态纹理
- 20. 如何使用CCRenderTexture来创建动态纹理
- (译)如何使用CCRenderTexture来创建动态纹理
- (译)如何使用CCRenderTexture来创建动态纹理
- (译)如何使用CCRenderTexture来创建动态纹理
- 更改 cocos2d-x CCRenderTexture 的使用方式
- 【转】cocos2dx橡皮擦效果,CCRenderTexture的使用
- Android游戏中获取电话的状态来进行游戏的暂停和继续
- 2.x游戏暂停层 GamePauseLayer 的实现
- 最小生成树
- SVN服务器搭建和使用(二)
- Java 设计摸索--访问者模式
- 关于setBuff的作用
- SVN服务器搭建和使用(三)
- 使用CCRenderTexture来是实现游戏的暂停
- 在shell中将内容打印并且存储到日志文件
- 三十 我在软件园的那些日子里
- 55分钟学会正则表达式
- C/C++程序员必须熟练应用的开源项目
- python升级带来的yum异常
- 【Qt编程】基于Qt的词典开发系列<五>--无边框窗口的拖动
- jQuery Validation Engine 表单验证
- mac上安装xlrd