cocos2dx进阶学习之CCEGLView
来源:互联网 发布:淘宝客服双十一感受 编辑:程序博客网 时间:2024/05/16 15:43
继承关系
CCEGLView-> CCEGLViewProtocol
CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以学习CCEGLView,主要是要学习CCEGLViewProtocol中定义的接口。
类主要成员
CCEGLView();
构造函数,初始化所有成员变量。
virtual void end();
删除窗口,做窗口清理工作
virtual bool isOpenGLReady();
判断是否可以绘图
virtual void swapBuffers();
交换buffer
virtual void setIMEKeyboardState(bool bOpen)
设置输入法状态
virtual void setFrameSize(float width, float height);
virtual const CCSize& getFrameSize() const;
设置和获取窗口大小
virtual CCSize getVisibleSize() const
virtual CCPoint getVisibleOrigin() const
获取可见区域的原点和大小
virtual void setDesignResolutionSize(float width, float height, ResolutionPolicy resolutionPolicy);
virtual const CCSize& getDesignResolutionSize() const;
设置设计的size,当需要适配多种设备时,可以用这个函数定义逻辑坐标,cocos2dx会自动将逻辑坐标转化成实际坐标
这样一样的代码可以适配各种设备分辨率。
virtual void setTouchDelegate(EGLTouchDelegate * pDelegate);
设置触摸代理,触摸代理有虚函数处理触摸事件,我们需要重写触摸处理虚函数即可,一般的实现是在CCLayer中
virtual void handleTouchesBegin(int num, int ids[], float xs[], float ys[]);
virtual void handleTouchesMove(int num, int ids[], float xs[], float ys[]);
virtual void handleTouchesEnd(int num, int ids[], float xs[], float ys[]);
virtual void handleTouchesCancel(int num, int ids[], float xs[], float ys[]);
触摸处理函数,可以重载
static CCEGLView* sharedOpenGLView();
获得单例的窗口指针,如果没有则创建,源代码如下:
CCEGLView* CCEGLView::sharedOpenGLView(){ if (s_pEglView == NULL) { s_pEglView = new CCEGLView();if(!s_pEglView->Create()){delete s_pEglView;s_pEglView = NULL;} } return s_pEglView;}从代码中可以看到,单例唯一的对象保存在s_pEglView中。
总结
CCEGLView是显示窗口,负责窗口级别的功能管理和实现,包括:
1)坐标和缩放管理
2)画图工具
3)按键事件
4)输入法
- cocos2dx进阶学习之CCEGLView
- cocos2dx进阶学习之CCEGLView
- CCEGLView学习
- cocos2dx进阶学习之CCObject
- cocos2dx进阶学习之CCApplication
- cocos2dx进阶学习之CCDirector
- cocos2dx进阶学习之CCScene
- cocos2dx进阶学习之CCNode
- cocos2dx进阶学习之CCLayer
- cocos2dx进阶学习之CCSprite
- cocos2dx进阶学习之CCTMXTiledMap
- cocos2dx进阶学习之CCTMXLayer
- cocos2dx进阶学习之CCSpriteBatchNode
- cocos2dx进阶学习之CCAction
- cocos2dx进阶学习之CCLayer
- cocos2dx进阶学习之CCNode
- cocos2dx进阶学习之CCNode
- cocos2dx进阶学习之CCDirector
- HTML script标签应该如何结束
- 高版本jQuery Validation Plugin验证图片样式不改变问题
- 3980. 二进制转十进制 今天最后一道了~明天继续加油喵~ >▽<
- Debugging and Error Handling
- 编译安装hbase0.96.x(系统为CentOS,完全避免运行时出现系统版本冲突)
- cocos2dx进阶学习之CCEGLView
- 每天一个小算法 --- 排序
- DIV position属性
- Linux内核学习笔记之系统启动(三)
- 动态规划的背包问题
- Oracle 集合中的SET与IS A SET 、IS NOT A SET例子
- 回调机制深入剖析
- Eclipse : Maven search dependencies doen't work
- andriod-api翻译(二)--Services