cocos2d-x
文章平均质量分 56
genius-x
这个作者很懒,什么都没留下…
展开
-
《我所理解的Cocos2d-x》PDF
《我所理解的Cocos2d-x》 针对最新的 Cocos2d-x 3.x版本,介绍了Coco2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGL ES图形渲染管线,深入探讨了游戏开发中涉及的相关图形学的知识,内容包括:Cocos2d-x的基本架构及渲染机制、纹理相关的知识、OpenGL ES 2.0渲染管线、计算机字体的绘制、多分辨率支持、事件分发、原创 2016-05-09 16:35:47 · 9702 阅读 · 10 评论 -
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 · 713 阅读 · 0 评论 -
17【cocos2d-x 源码分析】:多分辨率支持的详细分析
对应源码位置:cocos2d-x-3.3\cocos\platform\GLView设计分辨率与屏幕分辨率cocos2d-x中,进行游戏设计时使用逻辑上的设计分辨率,当具体游戏运行在物理机上时对应具体屏幕的分辨率,这就存在从设计分辨率到具体屏幕分辨率的适配问题,主要有一系列的适配策略,这里暂不列举,但就源码进行分析,一目了然。//这里设置 设计分辨率的大小 并指定 设计分辨率的策略voi...原创 2019-05-26 00:31:30 · 423 阅读 · 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 · 1265 阅读 · 0 评论 -
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 · 577 阅读 · 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 · 516 阅读 · 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 · 397 阅读 · 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 · 320 阅读 · 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 · 339 阅读 · 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 · 241 阅读 · 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 · 352 阅读 · 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 · 678 阅读 · 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 · 360 阅读 · 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 · 510 阅读 · 0 评论 -
cocos2d-x案例开发大全 新版本开发
cocos2d-x案例开发大全 书中有很多代表性的开发例子,是一本难的好书,建议中级开发者买一本,但不适合入门使用。。书中用的是cocos2d-x 2.1.4版本,相比现在的3.11来说,已经有些久了,此外其中Android平台的移植使用的Android版本也对于现今的6.0来说很难兼容了(至少在笔者的手机上源码里的APK已经无法安装成功了)。再者,现在基本都使用Android Studio来开发A原创 2016-05-06 00:57:27 · 4147 阅读 · 6 评论 -
cocos2d-x游戏开发实例(一)
1.哇!板球。效果展示 (电脑有点卡,运行不流畅。。)2.游戏框架结构(1)可以看出来游戏有多个场景构成,全部由ScenceManager调控,具体如下:2.源码介绍这里并不具体对代码做出一步步解释,具体后面我会附上我的代码,需要下载研究,下面主要对源码中部分功能在3.0版本的变化作出解释,希望读者更方便理解(1)cocos2d-x 3.0版本对屏幕监听做出了调整书中处理为重写父类的方法,代码如下原创 2016-05-07 18:26:35 · 5731 阅读 · 0 评论 -
cocos2d-x之retain和release
1.关于cocos2d-x中的内存管理机制,有很多关于这方面的资料,本不想提起,但笔者这段时间练的一个消灭星星的游戏实现却遇到了相关的问题,简单介绍一下。用于管理点击遍历搜索后的星星对象的vector在取出对象后遇到了问题,取出的行列值出现了混乱,百思不得其解,后来发现这时候取出的sprite对象其实已经被销毁了,所以在加入vector时retain后解决了问题。2.具体原因其实也很简单,消灭星星对原创 2016-09-22 23:44:04 · 4380 阅读 · 0 评论 -
cocos2d-x游戏开发实例(二)
1.废话不多说,直接看效果吧。。2.由cocos2d-x 2.x到3.0的相关接口函数变化和之前一个实例差不多,就不贴代码了,本来就是大家都很熟悉的消灭星星游戏,现在自己动手实现起来确实是件令人激动的事情。3.稍微概括一下开发的基本思路。首先,每一个可以消灭的星星都是一个扩展的sprite对象,存放在一个数组中。接下来就是一系列的过场动画特效什么的,其中有很多粒子效果。主要的地方就是通过点击的点坐标原创 2016-09-24 13:07:49 · 3535 阅读 · 0 评论 -
cocos2d-x中使用box2d出现无法解析的外部符。。
1.前段时间学习一个使用box2d的cocos2d-x游戏开发,反正写程序是没遇到问题,结果一编译,就傻眼了,各种无法解析的外部符,都直接指向box2d中的类,由于已经解决了,百度了张差不多的错误提示图片如下。2.大概很多人都遇到了类似的让人崩溃的问题吧。其实原来问题也很简单。由于cocos2d-x 3.0版本除了支持box2d外,默认提供的物理引擎为Chipmunk,所以没有配置引入box2d工程原创 2016-09-24 14:07:11 · 3729 阅读 · 0 评论 -
cocos2d-x不同版本的安装兼容问题
1.笔者之前以cocos2d-x 3.0版本入门,后来一直不敢瞎折腾,就没改过,不过最近对其3D功能很感兴趣,就动手下了3.3rc0,总觉得现在使用cocos new 命令时不清楚哪个版本了,索性动手自己尝试了2.其实现在才发现担心是多余的,当下载了新版本后,就会发现其实目录下就有个setup.py这个其实就是cocos命令安装。双击运行。笔者已经运行后现在只会一闪而过,无法截屏。但第一次大概会提醒原创 2016-09-24 17:18:40 · 4303 阅读 · 0 评论 -
cocos2d-x游戏摇杆开发
1.最近想做一个横屏格斗类游戏,但当然第一步必不可少的就是开发一个摇杆来控制游戏人物的移动,本来打算在网上找个简单看看,没想到都好几个文件,很麻烦,而且版本太旧了,索性自己动手算了。看看效果图 //没什么人物素材,瞎找的2.其实总结一下,开发个摇杆原理并不复杂,大概思路就是这样:随便继承自node,sprite,layer都行,两个sprite,一张是摇杆背景,一个是可以移动的部分,然后注册个触摸原创 2016-12-12 00:55:58 · 3600 阅读 · 0 评论 -
基于EasyX的游戏引擎的设计与实现
0.前言毕业设计想做点有意思的东西,想来想去做点游戏相关的吧,毕竟以后的方向不是这个了,做点东西对这几年学习游戏开发的方面收个尾。也没想到做个什么游戏好,无意间看到EasyX这个C++图形库(安装使用参照),又联想到当时看到的《游戏引擎架构》一书,就打算仿照着cocos2d-x源码的形式写一个简单的2d引擎,姑且叫Genius引擎。1.效果先来看看效果吧,毕竟单纯的引擎也没效果,然后就...原创 2018-06-05 01:07:27 · 2900 阅读 · 2 评论 -
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 · 385 阅读 · 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 · 356 阅读 · 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 · 454 阅读 · 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 · 717 阅读 · 0 评论