cocos-2d sufaceView 与活动通信导致变黑变白问题
来源:互联网 发布:淘宝产品打折功能收费 编辑:程序博客网 时间:2024/05/16 00:29
在开发安卓时,有时候会用的一些比较炫酷的动画,当用安卓原生的属性动画和帧动画又不好实现,往往会用一些辅助工具,比如cocos2d这样的游戏开发工具包。cocos2d-android用来实现一些安卓的动画比起cocos2d-x和cocosCreator更方便。虽然现在也没人维护,但也不妨碍我们使用它。
如果你对cocosAndroid有了解的话
CCGLSurfaceView surfaceView = new CCGLSurfaceView(this);
这个surfaceView 就是cocos自己绘制的View,我们使用的它来实现动画,可以直接将它添加到我们活动布局文件的view中。比如我在活动布局文件中定义了一个framLayout,然后在活动中把surfaceView 直接add到framLayout中。这个framLayout显示就是cocos的sufaceView了。
if (gameView != null) gameView.addView(surfaceView); //导演 director = CCDirector.sharedDirector(); director.attachInView(surfaceView); director.setDeviceOrientation(CCDirector.kCCDeviceOrientationPortrait);// 设置游戏方向 水平 director.setDisplayFPS(false);//显示帧率 director.setScreenSize(1280, 800);//设置屏幕的大小 可以自动屏幕适配 CCScene scene = CCScene.node(); gameLayer = new ChoiceWordLayer(mhander); scene.addChild(gameLayer); director.runWithScene(scene);
这样你可以自己在cocos的图层中去绘制想要的动画效果了。但是这样你在cocos的图层与活动之间通信是需要hander的,而且可能你点击活动里面的某个按钮去切换cocos的场景图层,就会导致场景变白或者变黑的问题。因为活动布局的suface和cocos图层的布局不是同一个suface,一般主线程绘制视图只有一个suface。在主活动的suface中改变另一个suface的视图。可能就会导致这种问题。怎么去解决呢?
/** * 切换界面 * * @param layer//切换的图层 */ public static void changeScene(CCLayer layer) { //得到导演 CCDirector director = CCDirector.sharedDirector(); CCScene menuScence = CCScene.node(); //参数1 场景切换时间 参数2 真实切换的场景 //CCJumpZoomTransition transition=CCJumpZoomTransition.transition(2f,menuScence); //CCFlipXTransition transition=CCFlipXTransition.transition(1.5f,menuScence,1); CCZoomFlipAngularTransition transition = CCZoomFlipAngularTransition.transition(1.5f, menuScence, 1); menuScence.addChild(layer); //导演替换场景 director.replaceScene(transition); **director.onPause(); //主线程通知刷新界面重新绘制 director.onResume();** }
切换图层的时候加上这两个,先停掉cocos的suface,再重新开启它,就不会出现那种黑白问题了。
director.onPause(); //主线程通知刷新界面重新绘制
directonResume();
- cocos-2d sufaceView 与活动通信导致变黑变白问题
- 状态栏变白 变黑 iOS 新手笔记
- cocos 2d 主页
- cocos-2d
- cocos-2d动画
- cocos-2d动作
- Cocos 2d 笔记
- SufaceView
- sufaceview
- sufaceview
- 【Unity&Shader】字体&2D图片变白的Shader
- Cocos 2d TestCPP 学习
- cocos-2d-x 资料
- Cocos-2d 游戏进度条
- cocos 2d-x 动作
- cocos-2d 游戏开发
- Cocos-2d开发文档
- 活动与服务间通信
- Reverse Nodes in k-Group--LeetCode
- 17.9.23B组总结
- form表单在spring 开发环境下的提交
- Sqoop2 Java客户端API指南
- Apache的https实现
- cocos-2d sufaceView 与活动通信导致变黑变白问题
- Java后台框架篇--Springsecurity(一)
- hdu 565 入门题
- 输入输出
- 【yoyo】Servlet和Filter
- Unity3d背包系统系统(一)——第一个类(Item物品类)
- Merge k Sorted Lists
- UDP协议
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指