cocos2d-x 源码分析
本系列针对 cocos2d-x 3.3源码。
genius-x
这个作者很懒,什么都没留下…
展开
-
1.【cocos2d-x 源码分析】:引擎 mainloop 简要分析
以Win32平台为例,找到 main 函数int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow){ UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCm...原创 2019-05-13 16:54:37 · 600 阅读 · 0 评论 -
2.【cocos2d-x 源码分析】:Scheduler类的详细分析
对应源码位置:(1)cocos2d-x-3.3\cocos\base\Scheduler.*Scheduler 一般译作 定时器,主要用于控制触发每帧都会需要的update以及用户自定义的更新操作。Timer类的实现这是一个 Light-weight timer,提供了指定delay延迟时间后,每次经过seconds时间间隔,触发trigger时间一次,执行次数为 _repeat+1,或...原创 2019-05-14 10:11:23 · 393 阅读 · 0 评论 -
3.【cocos2d-x 源码分析】:ActionManager类的详细分析
对应源码位置:(1)cocos2d-x-3.3\cocos\2d\CCActionManager (2)cocos2d-x-3.3\cocos\2d\CCAction(3)cocos2d-x-3.3\cocos\2d\CCActionInterval (4)cocos2d-x-3.3\cocos\2d\CCActionInstant先看看ActionManager 的大致原理在Director...原创 2019-05-14 17:13:25 · 384 阅读 · 0 评论 -
4.【cocos2d-x 源码分析】:EventDispatcher类的详细分析
对应源码位置:(1)cocos2d-x-3.3\cocos\base\CCEvent*先从 Event 类开头class CC_DLL Event : public Ref{public: //可想而知 对应这几个类型 分别有对应的Event子类 //以及 对应事件的 eventlistener enum class Type { TOUCH, ...原创 2019-05-16 11:00:23 · 386 阅读 · 0 评论 -
5.【cocos2d-x 源码分析】:Node 类体系的详细分析
对应源码位置:(1)cocos2d-x-3.3\cocos\2d\CCNode (2)cocos2d-x-3.3\cocos\2d\CCLayer(3)cocos2d-x-3.3\cocos\2d\CCSceneNode是整个游戏对象的根节点基本后面熟知的 sprite 、 layer 以及 scene都是他的子类。Node类的部分代码由于Cocos2d-x采用继承的方针组织整个游戏对象...原创 2019-05-16 17:58:45 · 722 阅读 · 0 评论 -
6.【cocos2d-x 源码分析】:渲染部分的详细分析(上)
对应源码位置:cocos2d-x-3.3\cocos\render\*主循环中的渲染部分下面代码选自 void Director::drawScene()if (_runningScene) { //clear draw stats _renderer->clearDrawStats(); //render th...原创 2019-05-18 20:36:14 · 365 阅读 · 0 评论 -
7.【cocos2d-x 源码分析】:渲染部分的详细分析(中)
对应源码位置:cocos2d-x-3.3\cocos\render*从RenderCommand看起class CC_DLL RenderCommand{public: //以下 主要 7种 enum class Type { UNKNOWN_COMMAND,//这一种 就是不知道是哪一种 QUAD_COMMAND, CU...原创 2019-05-20 11:14:32 · 486 阅读 · 0 评论 -
8.【cocos2d-x 源码分析】:渲染部分的详细分析(下)
对应源码位置:cocos2d-x-3.3\cocos\render*从 RenderQueue说起//渲染 队列class RenderQueue {public: void push_back(RenderCommand* command); ssize_t size() const; //按照 z值进行排序 void sort(); Render...原创 2019-05-20 22:26:12 · 537 阅读 · 0 评论 -
9.【cocos2d-x 源码分析】:Texture的详细分析
对应源码位置:cocos2d-x-3.3\cocos\render\CCTexture*从Sprite谈起Sprite其实内部必然包含一个纹理图片,但我们写代码时候用到的是传入一个图片路径,从下面看://直接 传入Texture2D 对象Sprite* Sprite::createWithTexture(Texture2D *texture){ Sprite *sprite = ...原创 2019-05-22 10:41:39 · 1312 阅读 · 0 评论 -
10.【cocos2d-x 源码分析】:UI系统的详细分析(上)
对应源码位置:cocos2d-x-3.3\cocos\ui\UI*从 Widget 看起先从 一些布局的基本讲起//这里是 代表边距的类class CC_GUI_DLL Margin{public: float left; float top; float right; float bottom; public: Margin(); ...原创 2019-05-22 21:02:19 · 598 阅读 · 0 评论 -
11.【cocos2d-x 源码分析】:UI系统的详细分析(中)
对应源码位置:cocos2d-x-3.3\cocos\ui\UI*Layout的原理这里选取少量的重点部分。//找当前节点的下一个可以聚焦的节点//主要看思想 已经删了很多了Widget* Layout::getNextFocusedWidget(FocusDirection direction, Widget *current){ Widget *nextWidget = ...原创 2019-05-22 21:03:23 · 430 阅读 · 0 评论 -
12.【cocos2d-x 源码分析】:UI系统的详细分析(下)
对应源码位置:cocos2d-x-3.3\cocos\ui\UI*HBox与 VBox这两者的实现很简单class CC_GUI_DLL VBox : public Layout{ public: /** * Default constructor */ VBox(); /** * Default ...原创 2019-05-22 22:19:46 · 381 阅读 · 0 评论 -
13.【cocos2d-x 源码分析】:内存管理的详细分析
对应源码位置:(1)cocos2d-x-3.3\cocos\base\CCRef ;(2)cocos2d-x-3.3\cocos\base\CCAutoreleasePool内存管理的在引擎中的位置void DisplayLinkDirector::mainLoop(){ if (_purgeDirectorInNextLoop) { _purgeDirect...原创 2019-05-23 20:30:15 · 245 阅读 · 0 评论 -
14.【cocos2d-x 源码分析】:Audio的详细分析
对应源码位置:cocos2d-x-3.3\cocos\audio\include\SimpleAudioEngineSimpleAudioEngine的实现SimpleAudioEngine是提供了简单的 播放音效,以及播放背景音乐的功能。class EXPORT_DLL SimpleAudioEngine{public: static SimpleAudioEngine...原创 2019-05-23 21:31:04 · 356 阅读 · 0 评论 -
15.【cocos2d-x 源码分析】:localStorage的详细分析
对应源码位置:cocos2d-x-3.3\cocos\storage\local-storage\localStoragelocalStorage 的接口cocos2d-x提供了简单的本地数据存储的功能,其主要是由对sqlite的封装来实现。//初始化 数据库void CC_DLL localStorageInit( const std::string& fullpath = ""...原创 2019-05-23 21:49:09 · 711 阅读 · 0 评论 -
16【cocos2d-x 源码分析】:HttpClient 的详细分析
对应源码位置:cocos2d-x-3.3\cocos\network\Http*HttpRequest的实现typedef std::function<void(HttpClient* client, HttpResponse* response)> ccHttpRequestCallback;//(cocos2d::Ref::*SEL_HttpResponse) 代表cocos...原创 2019-05-24 10:51:56 · 755 阅读 · 0 评论 -
17【cocos2d-x 源码分析】:多分辨率支持的详细分析
对应源码位置:cocos2d-x-3.3\cocos\platform\GLView设计分辨率与屏幕分辨率cocos2d-x中,进行游戏设计时使用逻辑上的设计分辨率,当具体游戏运行在物理机上时对应具体屏幕的分辨率,这就存在从设计分辨率到具体屏幕分辨率的适配问题,主要有一系列的适配策略,这里暂不列举,但就源码进行分析,一目了然。//这里设置 设计分辨率的大小 并指定 设计分辨率的策略voi...原创 2019-05-26 00:31:30 · 461 阅读 · 0 评论