于1于,我只是对整体结构进行了分析,然后,2于,我会在一些我们经常使用的分析功能. //获取给定文件名称的全路径 //以下这非常长一段凝视.通过举样例,像我们说明cocos2dx获取文件全路径的规则. //这段我就不翻译了,直接通过代码来看. /** Returns the fullpath for a given filename. First it will try to get a new filename from the "filenameLookup" dictionary…
cocos2d-x for android:SimpleGame分析 作为cocos2d-x的标配DEMO,SimpleGame可算是给入门学cocos2d-x的俺们这些新手门学习的对象了,那么来分析分析,把几个关键的代码记录下来. 设置游戏读取资源的目录 CCFileUtils::sharedFileUtils()->setResourceDirectory("sd"); 默认路径是Resource目录 设置游戏的分辨率大小 CCEGLView::sharedOpenGLVie…
简述:   我靠上面图是不是太大了, 有点看不清了.  总结一下过程: 之前说过的appController 之后经过了若干初始化, 最后调用了displayLinker 的定时调用, 这里调用了函数 mainLoop, 我们在这里进行详细分解这个mainloop 到底做些些啥, 看完这篇,应该能初步了解到cocos2dx是如何把Scene或界面元素显示到屏幕上的.    我们主要分析的是 void DisplayLinkDirector::mainLoop()  这个函数, 它最后调用了Dir…
cocos2d-x 自己实现了一个数组CCArray ,下面我们来分析一下CCArray的源码 CCArray继承CCObject,所以,CCArray也具有引用计数功能和内存自动管理功能. 数组的源码如下: class CC_DLL CCArray : public CCObject { public: /************************************************************************/ /* 构造析构函数 */ /*******…
cocos2d-x 自己实现了一个数组CCArray ,下面我们来分析一下CCArray的源码 CCArray继承CCObject,所以,CCArray也具有引用计数功能和内存自动管理功能. 数组的源码如下: class CC_DLL CCArray : public CCObject { public: /************************************************************************/ /* 构造析构函数 */ /*******…
渲染,感觉这个挺重要了,这里代入一个简单的例子 Sprite 建立及到最后的画在屏幕上, 我们描述一下这个渲染的流程:   1 sprite 初始化(纹理, 坐标,及当前元素的坐标大小信息) 2 主循环调用sprite的draw(), 把绘制命令发送到系统的render的渲染队列中.  3 Render拿到渲染队列中的渲染命令, 分别对每个命令进行处理, 我们这里的QUAD_COMMAND, 把这个命令中的坐标信息复制到自己的渲染缓冲中, 之后通过调用OpenGL命令对当前的矩形进行绘制.   …
cocos2dx中资源文件都放在Resources目录中,编译后会自动复制到exe所在的目录中. 核心类是FileUtils类,一个单例类. 三个重要的函数 void addSearchPath(const std::string & path, const bool front=false); virtual void addSearchResolutionsOrder(const std::string &order,const bool front=false); virtual s…
打算新项目转到cocos2dx v3上了,下载代码浏览过后发现改动真是非常大,结构性调整很多. 比如tolua绑定这一块,就几乎全翻新了. 胶水代码的生成,改成了全自动式的,通过clang来分析c++代码,可以准确的知道每一个类.函数.参数的信息,再也不用手动写pkg文件了. 运行期对象管理这块,似乎也有了不少改动,至少我原来的一些扩展代码运行不了了,还没来得及细看,待看完再一一录下. 先记录一下目前已看清楚的[类名表.类元表.对象实例]之间的关系: 1.类元表:最核心的表,在lua代码里是不可…
Coco2d-x引擎是相对于Unity3D的又一实力派引擎.尽管随着3D游戏的热门,很多其它的厂商偏向于Unity3D.可是Coco2d-x的普及量也不容小觑,特别是一些比較大的手游公司.比方触控科技仍然一直沿用着Coco2d-x的东西.我们从三个热门游戏来说说Coco2d-x游戏的一般文件验证方法. 1.捕鱼达人2:将Smali文件里获取包路径的參数转向我们自己定义的. 该种方法最早见于:http://bbs.csdn.net/topics/390598569?page=2#post-3959…
 个人原创.欢迎转载,转载请注明原文地址http://blog.csdn.net/bill_man 从本篇文章開始,将分析cocos2D-X 3.0源码,第一部分是从cocos2D-X学习OpenGL,也就是分析cocos2D-X 3.0的渲染代码,本篇首先介绍cocos2D-X 3.0的渲染结构.使用的是3.0正式版. void DisplayLinkDirector::mainLoop() { if (_purgeDirectorInNextLoop) { //仅仅有一种情况会调用到这里来,…
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=281 注:自己以前也写过cocos2d-x如何优化内存的使用,以及内存不足的情况下怎么处理游戏.今天在微博中看到有朋友介绍了下内存,挺详细的.不知道是谁写的,我记录下. 一,IOS与图片内存 在IOS上,图片会被自动缩放到2的N次方大小.比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的.图片占用…
转自:http://www.cocos2dev.com/?p=281 注:自己以前也写过cocos2d-x如何优化内存的使用,以及内存不足的情况下怎么处理游戏.今天在微博中看到有朋友介绍了下内存,挺详细的.不知道是谁写的,我记录下. 一,IOS与图片内存 在IOS上,图片会被自动缩放到2的N次方大小.比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的.图片占用内存大小的计算的公式是:长*宽*4.这样一张512*512 占用的内存就是 512*512*4 = 1M.…
(转载请注明原文:http://blog.csdn.net/while0/article/details/25615685) 本文章特指使用C++作为编程语言.基于cocos2dx游戏引擎开发游戏. 在cocos2dx中,sprite作为精灵类是使用最为频繁的类,与其他类相比.如:Node, Layer或Scene.Sprite最大的不同是它包括一个纹理.通过OpenGL的渲染.在游戏中呈现出来. 游戏中的主角.怪物,背景,或是精灵的血条等都是通过Sprite来实现的. 在cocos2dx中,关…
最近在看cocos2d-x 但不知道如何下手,于是先看一下他编译的完成的testcpp的源码.发现了下面一段程序 typedef CCLayer* (*NEWTESTFUNC)(); #define TESTLAYER_CREATE_FUNC(className) \ static CCLayer* create##className() \ { return new className(); } #define CF(className) create##className #define 用…
scheduler 这个类, 负责了引擎的自定义更新, 及定时更新相关的操作, 看看下面的代码,很熟悉吧.   schedule(schedule_selector(HelloWorld::update), );   它是如何工作的呢, 咱还记得前面mainLoop->drawScene() 的调用 吗?里面就有调用Scheduler::update(float dt)   我们用一个例子代入一下, 就拿上面的代码来说, 分2个步: 1 注册更新调用 2 引擎调用用户的更新调用函数.   1 注…
Director 导演类, 这个类在整个引擎中担当着最重要的角色, 先看看它是如何初始化的,它共管理了哪些内容呢?    1初始化- 更新处理Scheduler   Scheduler 这个类负责用户自定义的更新函数的调用, 或游戏对象的update(float dt)的调用. 像经常调用的schedule() 或scheduleUpdate() 就是这个类来负责处理的.   见下面的代码, 就是程序中如何使用schedule. 具体如何处理, 在后面的还会进行展开. 这块可以单拿出一章来介绍一…
弱联网开发技术: libcurl 添加lib文件:libcurl_imp.lib  pthreadVCE2.lib 添加头文件:#include"curl/curl.h" curl_global_init(CURL_GLOBAL_ALL);//初始化 curl_global_cleanup();//结束执行 简单接口:easy interface  单线程会引起阻塞 //设定请求的网络地址 //向服务器读数据 CURL *easy_handle=curl_easy_init(); cu…
本文来自http://blog.csdn.net/runaying ,引用必须注明出处! COcos2d-X 中文API 温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另一个博客 http://blog.csdn.net/u012972188 写在前面:千呼万唤始出来,我想大家一定对这篇文章期待已久了吧!今天小编,就把前面发表的文档整理了一下,方便大家在使用的时候快速索引,大家如果觉得还不错就赞一下!或许你觉得鼠标滚轮没滚动几下就到结尾了,可这些文档都是小编辛辛苦苦…
游戏开发中常遇到资源保护的问题. 目前游戏开发中常加密的文件类型有:图片,Lua文件,音频等文件,而其实加密也是一把双刃剑. 需要安全那就得耗费一定的资源去实现它.目前网上也有用TexturePacker工具来加密的,不过针对性还是不够强. 分析一下原理为: 1,转格式:将需要加密的文件转为流的方式: 2,加密:根据自己需要使用加密手段,MD5,AES,甚至可以直接改变位移,加一些自己的特殊字符也可以使文件简单加密,加密完后基本保证 图片类型基本用特殊软件预览不了也打不开,Lua文件加密后一片乱…
OverView The purpose of this document is show you how does function CCFileUtils::fullPathForFilename() work on different platforms. The document is based on engine version: cocos2d-x 2.1 CCFileUtils::fullPathForFilename() is not return the absolute p…
Cocos2d-x网站列表 CocoaChina(官方网站,不解释)www.cocoachina.com/ 泰然网(貌似最近有很多不错的文章,不过早期的文章质量一般)www.ityran.com/ Cocos2d-x博客列表 老G的小屋  www.goldlion.blog.51cto.com/ 小满的专栏   www.blog.csdn.net/bill_man/article/details/7341028 子龙山人  www.zilongshanren.com/ 红孩儿的游戏编程之路  w…
欢迎增加Cocos2d-x 交流群:193411763 转载时请注明原文出处 :http://blog.csdn.net/u012945598/article/details/39927911 ---------------------------------------------------------------------------------------------------------------------------------------------------------…
游戏开发中常遇到资源保护的问题. 目前游戏开发中常加密的文件类型有:图片,Lua文件,音频等文件,而其实加密也是一把双刃剑. 需要安全那就得耗费一定的资源去实现它.目前网上也有用TexturePacker工具来加密的,不过针对性还是不够强. 分析一下原理为: 1,转格式:将需要加密的文件转为流的方式: 2,加密:根据自己需要使用加密手段,MD5,AES,甚至可以直接改变位移,加一些自己的特殊字符也可以使文件简单加密,加密完后基本保证 图片类型基本用特殊软件预览不了也打不开,Lua文件加密后一片乱…
详细教程:http://www.cocoachina.com/bbs/read.php?tid=161567 Table of Contents 1 游戏中的 UI 1.1 基于 Cocos2d-x 的 UI 使用现状分析 1.2 如何在游戏中使用 CocoStudio UI 框架 1.3 CocoUI 框架基本组成 2 CocoUI 框架 1 游戏中的 UI CocoStudio 是专门针 对 Cocos2d-x 而设计的一套可视化编辑工具,它能与Cocos2d-x 无缝的集成.对美工而言,可…
1. TextureAtlas http://www.cocoachina.com/bbs/read.php?tid-311439-keyword-TextureAtlas.html 2. Label,LabelTTF,LabelBMFont等 http://www.jellythink.com/archives/766 http://www.2cto.com/kf/201409/336234.html Problem Currently Cocos2D supports mainly two…
1.三维拾取技术 在3D游戏中通常会有这样的需求,用户可以选取3D世界中的某些物体进行如拖拽等操作,这时便需要程序通过将二维屏幕上的点坐标转换为三维世界中的坐标,并进行比对,这个过程就需要用到三维拾取. 三维拾取的基本原理并不复杂,我们仍然以Cocos2d-x 3.3beta0版本来分析.拾取思想可以简单的理解为:首先得到在屏幕上的触摸点的坐标,然后根据摄像机投影矩阵与屏幕上的触摸点计算出一条射线ray,注意,正常情况下之后应该去找与射线相交并且交点距离射线起点最近的点所在的包围盒,这个包围盒才…
莫队算法是由清华大学神牛莫涛发明的一种处理区间问题的离线算法 算法核心是通过先将问询区间总长度平方分块.然后将所有的问询区间按照左端点所在的块编号排序.在同一块内的则按右端点升序 然后设置左右两个下标指针.每次都移动两个指针指向问询块的左右端点.在移动的过程中不断维护答案. 可以证明原本只通过两个下标指针移动来处理问询的方法最坏可达 O(N*Q) 经过莫队算法排序后可降为 O((N+Q)*sqrt(N)) 所以莫队算法其实就是排个序 当然经过我粗略的概述肯定是无法讲清楚的,这里给出几个链接方便参…
转自:http://blog.csdn.net/honghaier/article/details/8068895 当一张图片被加载到内存后,它是以纹理的形式存在的.纹理是什么东西呢?纹理就是一块内存,这块内存中存放的是按照指定的像素格式填充的图片像素信息.它被最终作为三角面着色所依据的数据源. 我们来看一下cocos2d-x中的libcocos2d库,其下有许多目录,找到textures展开,可以看到有CCTexture2D,CCTextureAtlas,CCTextureCache,CCTe…
尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27186557 Hello World 分析 打开新建的"findmistress"项目,能够看到项目文件是由多个代码文件及目录组成的.当中 Hello World 的代码文件直接存放于该项目目录中.以下我们来具体介绍一下项目的文件组成. 1."resource" 该目录主要用于存放游戏中须要的图片.音频和配置等资源文件…
Hello world分析 1. “resource”文件夹 用于存放图片.音频和配置等资源文件.为了方便管理,可以创建在其中创建子文件夹.Cocos2d-x为我们屏蔽了不同平台对于文件路径的定义. 2. “incluce”和“source”文件夹 这两个文件夹用来存放游戏头文件和源代码文件.项目模板为我们添加的三个文件分别为”main.h”,”main.cpp”和”resource.h”,它们是平台相关的程序文件,为Window专有. 通常情况下,程序入口与资源文件管理在不同平台下是不同的,但…