[cctk] cocos2d-x终极篇,cctk的诞生

[cctk] cocos2d-x终极篇,cctk的诞生http blog csdn net cocosviva article details 感谢各位群主提供良好的学习交流平台

大家好,欢迎来到IT知识分享网。

感谢各位群主提供良好的学习交流平台。

 Cocos2d-x技术讨论区    

 cocos2d-x手机游戏开发  

首先笔者先做一下声明,ccbase里提供的各种功能和解决方案,经过笔者的严格测试,已经几乎不存在BUG了,目前1.0是一个长久稳定版,如果开发者在使用cctk任何一个部分遇到问题,可以立马提交给笔者,笔者将在6小时内给予答复,24小时内给出新版本或解决方案。

笔者:

运行环境:cocos2d-x 2.1.3

进入主题,不说太多废话了,cctk是基于cocos2d-x游戏开发的一套解决方案,设计理念,框架,思路等,至于cctk名字的来源,笔者也不清楚,随便起的

为什么会有cctk的诞生,在cocos2d-x的游戏开发中,不少人掉到坑里很多回,这个是不可避免的,经过长时间的磨练,能够清楚cocos2d-x的运作,提供正确的解决方案、架构思路等。现在cctk的诞生就为了填补这些容易掉下去的坑,这一套解决方案为初步向移动平台靠拢的公司提供一个良好的平台,也为cocos2d-x的开发者提供一个可参考的思路和架构模式。

先简单介绍一下cctk,cctk包含三个部分

[cctk] cocos2d-x终极篇,cctk的诞生

[cctk] cocos2d-x终极篇,cctk的诞生

ccbase:管理场景生命周期的一套解决方案 

在场景管理上,cocos2d-x本身提供的CCDirector来管理场景,ccbase提供的CSceneManager是对CCDirector的轻量级包装,首先,所有场景必须继承自CScene,通过类名注册映射,以后运行场景可以通过类名,达到反射的效果,来在任何位置运行一个场景,这样解决了在各个场景文件中,复杂的头文件包含关系。CSceneManager还提供消息机制,只要是在UI线程上任意位置调用PostMessageA 即可对场景运行栈 栈顶的场景发消息,这样就可以剥离场景界面逻辑与游戏逻辑,在游戏逻辑处理器中处理完逻辑,发消息到场景中,再处理UI,完美的达到了解耦分层的效果。CSceneManager还提供全局弹出框的支持,弹出框的构造也是通过类名反射出来的,在UI线程的任意位置,都能打开弹出框,弹出框不受场景的限制(这个CCNode是脱离CCScene根节点的而独立出来的),在任意位置都可调用。

ccbase [[cctk] cocos2d-x终极篇,cctk的诞生]

ccnet:跨平台TCP通信的一套解决方案

在cocos2d-x平台开发模式下,开发网游,网络模型框架必不可少,大部分人都采用网上开源的跨平台框架,odsocket,或者bsdsocket。现在提供ccnet解决方案,ccnet采用的是select模型,无阻塞读写。既然是无阻塞,所以读写就可以放到UI线程了。这样就避免了要去搞跨平台线程的成本和风险,对于select模型,在UI线程,占用资源少,不会影响帧渲染。除了socket部分,ccnet还提供对网络逻辑的封装,CNetBean,使用一个bean对象来管理网络的生命周期,创建(onCreate),连接成功(onConnected),断开连接(onDisconnected),连接出错(onConnectError),连接超时(onConnectTimeout),读到数据(onMessage),CNetBean实现了对数据包粘包组包的解决方案和算法。 另外ccnet提供CStream流对象,可以很轻松的组装字节流(不适用于字符流),使开发者不用再过多的关心网络部分,能把更多的精力放在逻辑上。

ccnet  [[cctk] cocos2d-x终极篇,cctk的诞生]

ccwidget:提供了一套控件库。解决了2d-x在2.1.3之前版本提供的控件中的bug,和增加了一些拓展性 (目前控件支持上还比较少)

控件都是由CCMenuItem拓展来的。CWidgetLayout用来包含所有控件,主要做事件分发和管理优先级。另外CTableView和CTableViewCell做了更多拓展的功能,和解决了之前的bug,ccwidget提供的TableView在手指释放后,可以自动调整位置。使TableView可以兼容CCMenuItem,不会再产生CCMenuItem滑出屏幕还能点击的问题,另外在TableView上的CCMenuItem,不会硬性接收事件,解决了某些按钮过大,几乎占了cell的全部,这样的情况点到CCMenuItem就不能再拖动了,CTableViewCell解决了这个问题。

ccwidget [[cctk] cocos2d-x终极篇,cctk的诞生]

接下来笔者一一介绍每种解决方案带来的功能,提供(源码)(示例代码)(网络小游戏)。

下载地址:[http://download.csdn.net/detail/u0/]

CCTKv1.0_Test.rar  //cctk的示例程序,演示了各种API的调用方式

CCTKv1.0_SimpleGame  //cctk完成的一个网络小游戏

下载地址:[http://download.csdn.net/detail/u0/]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/142215.html

(0)
上一篇 2025-05-11 21:00
下一篇 2025-05-11 21:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信