加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

开坑,cocos2dx从零学起记录

发布时间:2020-12-14 19:37:03 所属栏目:百科 来源:网络整理
导读:前传:Cocos2dx的开始阶段似乎颇为艰难。在网上下载的loli快跑似乎编译不了。很有可能是我的版本不对,我用的Cocos2dx 3.0和vs2012,编译后又有许多报错。 后来在Cocos引擎中文网找到了开源项目FantasyWarrior3D-master,不过似乎是以3D为主,用Lua脚本作为逻

前传:Cocos2dx的开始阶段似乎颇为艰难。在网上下载的loli快跑似乎编译不了。很有可能是我的版本不对,我用的Cocos2dx 3.0和vs2012,编译后又有许多报错。

后来在Cocos引擎中文网找到了开源项目FantasyWarrior3D-master,不过似乎是以3D为主,用Lua脚本作为逻辑判断,这个还是比较感兴趣,但还是现在还是找些基础的作为参考参照范例。就用loli快跑的类和Cocos的参考范例,结合自己的想法来写个小游戏。没有相关项目,没人指导,一个人摸索确实会有点像无头苍蝇一样有点迷茫。

学习步骤:参考《Cocos2d-x高级开发教程》,有pdf打印版,里面讲得很是不错,循序渐进,也比较全面,先粗略得看看,再结合编写代码过程找知识点,最后再详细读一遍,应该能行。计算机书籍就得好多遍,每次都有不同的体会。

发现什么就写什么吧。


第一章就放这些吧:

记录些常用宏

    1.USING_NS_CC;  //注:后有分号  #define USING_NS_CC  using namespace cocos2d  使用了cocos2d的命名空间
    2.CREATE_FUNC(class);  宏定义如下,给所在的类创建一个create()函数,而且具有自动释放内存功能
		/**
		* define a create function for a specific type,such as Layer
		* @param __TYPE__ class type to add create(),such as Layer
		*/
		#define CREATE_FUNC(__TYPE__) 
		static __TYPE__* create() 
		{ 
 		 	__TYPE__ *pRet = new __TYPE__(); 
  			if (pRet && pRet->init()) 
 		 	{ 
   				 pRet->autorelease(); 
    			return pRet; 
  			} 
 		 	else 
  			{ 
    			delete pRet; 
    			pRet = NULL; 
   				 return NULL; 
  			} 
		}<span style="font-family: Arial,Helvetica,sans-serif;">        <span style="white-space:pre">																																		</span>//Cocos2d-x 不使用传统的值类型,所有的对象都创建在堆上,然后通过指针引用。在 Cocos2d-x 2.0 及后续版本中,工厂方法的名称统一为 create。在 Cocos2d-x<span style="white-space:pre">	</span>//中,许多类会自带一系列工厂方法,这些工厂方法是类提供的静态函数。只要提供必要的参数,就会返回一个完成了初始化的对象。</span>
<span style="font-family: Arial,sans-serif;"><span style="white-space:pre">		</span>3.#define CCRANDOM_0_1() ((float)rand()/RAND_MAX)   //从0到1之间获取一个随机数注意后面有个"()"。RAND_MAX被定义为0x7fff,这数值恰好是rand范围[0,Ma<span style="white-space:pre">															</span> //x),左开右闭区间,会返回一个[0,1)的数据。<span style="white-space:pre">			</span>   <span style="white-space:pre">										</span>    /** @def CCRANDOM_MINUS1_1<span style="white-space:pre">								</span>//[-1,1)的数据
returns a random float between -1 and 1
*/
#define CCRANDOM_MINUS1_1() ((2.0f*((float)rand()/RAND_MAX))-1.0f)

/** @def CCRANDOM_0_1
returns a random float between 0 and 1
*/
#define CCRANDOM_0_1() ((float)rand()/RAND_MAX)          <span style="white-space:pre">																					</span>                                      <span style="white-space:pre">			</span>//扩展 rand每次调用前会检查seed的值,如果没有调用srand(1),每次产生的随机序列一样,便于调试,想要不同应该先设置srand(seed).     </span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读