cocos2dx进阶学习之CCEGLView

cocos2dx进阶学习之CCEGLView,第1张

概述继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以学习CCEGLView,主要是要学习CCEGLViewProtocol中定义的接口。 类主要成员 CCEGLView(); 构造函数,初始化所有成员变量。 virtual void end(); 删除窗口, 继承关系

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,float ys[]);

virtual voID handletouchesEnd(int num,float ys[]);

virtual voID handletouchesCancel(int num,float ys[]);

触摸处理函数,可以重载


static CCEGLVIEw* sharedOpenGLVIEw();

获得单例的窗口指针,如果没有则创建,源代码如下:

[cpp] view plain copy CCEGLVIEw*CCEGLVIEw::sharedOpenGLVIEw() { if(s_pEglVIEw==NulL) { s_pEglVIEw=newCCEGLVIEw(); if(!s_pEglVIEw->Create()) deletes_pEglVIEw; s_pEglVIEw=NulL; } } returns_pEglVIEw; } 从代码中可以看到,单例唯一的对象保存在s_pEglVIEw中。


总结

CCEGLVIEw是显示窗口,负责窗口级别的功能管理和实现,包括:

1)坐标和缩放管理

2)画图工具

3)按键事件

4)输入法

总结

以上是内存溢出为你收集整理的cocos2dx进阶学习之CCEGLView全部内容,希望文章能够帮你解决cocos2dx进阶学习之CCEGLView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1019964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存