09 2013 档案

摘要:最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数……用一些比较原始、低效率的方法……甚至是copy / paste………………。……。这不科学啊!你不能这么勤劳啊!你这么勤劳要出事的啊!每年有多少程序员过劳死啊!程序员一定要是懒骨头才是正道啊!首先第一个,看到有问题,要写很多代码处理问题,自己动手,丰衣足食——不是一条好路,是一条革命的老路。我们前面有那么多前任程序员的尸体,要学 阅读全文
posted @ 2013-09-30 16:16 【Winco】 阅读(333) 评论(0) 推荐(0) 编辑
摘要:1、string转int1 string str="12345"; 2 int b=atoi(str.c_str());2、int转string1 int num = 100;2 char numStr[20] = {0};3 sprintf(numStr, "%d", num);4 string str = string(numStr);3、char*转string1 char* pChar = "test";2 char temp[20] = {0};3 sprintf(temp, "%s", pChar);4 阅读全文
posted @ 2013-09-30 14:47 【Winco】 阅读(371) 评论(0) 推荐(0) 编辑
摘要:重新设置一个随机种子。。。 如果没有srand((unsigned)time(NULL));运行以下程序,每次输出结果会都是一样的。。。。。 void test_Random(void) { srand((unsigned)time(NULL)); for(int i = 0; i < 20; i++) { CCLOG("%d", (int)(CCRANDOM_0_1() * 100)); } } 阅读全文
posted @ 2013-09-22 18:00 【Winco】 阅读(462) 评论(0) 推荐(1) 编辑
摘要:在这篇文章中,我们将讲下CCTableView,顾名思义,CCTableView表试图,在ios里是tableview,android里是listview,都是差不多的意思,在cocos2dx中CCTableView继承自CCScrollview。OK,下面我们直接上代码:在头文件.h中: 1 class HelloWorld : public cocos2d::CCLayer,public cocos2d::extension::CCTableViewDelegate,cocos2d::extension::CCTableViewDataSource 2 { 3 public: 4 ... 阅读全文
posted @ 2013-09-18 18:41 【Winco】 阅读(3811) 评论(0) 推荐(0) 编辑
摘要:C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。一、map的说明1头文件1 #include 2定义1 map my_Map; 2 或者是typedef map MY_MAP; 3 MY_MAP my_Map; 3插入数据1 (1) my_Map["a"] = 1; 2 (2) my_Map.insert(map::value_type("b",2)); 3 (3) my_Map.insert(pair("c",3)); 4 (4) my_Map.insert(make_ 阅读全文
posted @ 2013-09-18 11:20 【Winco】 阅读(316) 评论(0) 推荐(0) 编辑
摘要:找到工程文件,如test.vcxproj。在 地方增加如下即可。4819如:1 2 Level33 4819;4267;4244;%4 ...5 阅读全文
posted @ 2013-09-17 11:33 【Winco】 阅读(604) 评论(0) 推荐(0) 编辑
摘要:在cocos2d-x的开发过程中有些时候也是需要用到双击的事件处理,那么由于在cocos2d-x中没有实现对双击的事件的处理,那么我们就需要自己用代码实现。下面介绍两种方式实现双击事件的处理。(一)方法一第一种方法就是利用两次touch之间的时间间隔来判定是单击或者是双击,一般来说,双击,两次touch之间的时间间隔为250ms~300ms(毫秒)。所以利用这个条件就可以对双击进行判断处理了。注意到由于要获取两次touch之间的touch时间,而且是以毫秒为单位,所以需要用到下面这个方法:1 //获取系统的毫秒时间2 long millisecondNow()3 {4 struct c... 阅读全文
posted @ 2013-09-09 16:01 【Winco】 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:模态对话框(其本身是一个Layer)是指只有该对话框能够响应触摸操作,而其它层不能响应此触摸操作。模态对话框一般在场景中的最上层。模态对话框会有两种触摸代理,一种是对话框该层本身,还有一种是CCMenu。cocos2d-x使用优先级来管理触摸代理,优先级数越小,响应优先级越高。对于同一个触摸,如果有优先级数字更小的代理响应了,则优先级数字更大代理不再响应此触摸。要想拦截模态对话框下的层(包括菜单)对触摸消息不响应,我们必须将的模态对话框优先级设置小于-128 ,并且如果此触摸只要被响应了就会吞噬掉(CCTouchDispatcher::addTargetedDelegate中第三个参数设置为t 阅读全文
posted @ 2013-09-09 14:43 【Winco】 阅读(1273) 评论(0) 推荐(0) 编辑
摘要:在Cocos2d-x中经常碰到init() 和 onEnter()init()和onEnter()这两个方法都是CCNode的方法。1.二者的执行顺序是:先init() 后onEnter()。2.init()在类的初始化时只会调用一次。3.onEnter在该类被载入场景的时候被调用,可能会发生多次。下面提供这样一个demo判断二者的执行顺序:BaseFile.h 1 #ifndef __trydemo__BaseFile__ 2 #define __trydemo__BaseFile__ 3 4 #include 5 #include "cocos2d.h" 6 USING 阅读全文
posted @ 2013-09-09 14:31 【Winco】 阅读(631) 评论(0) 推荐(0) 编辑
摘要:CCProgressTimer,创建使用这个节点可以大致实现两个作用的效果:其一:在游戏中几乎大部分的游戏启动界面都是游戏加载画面,那么用到的一般是进度条提示加载进度,其使用的就是CCProgressTimer。其二:在游戏中需要对精灵的出现等动作制作一些渐显的效果。(1)类型一般就是两种:1 typedef enum {2 /// Radial Counter-Clockwise3 kCCProgressTimerTypeRadial,4 /// Bar5 kCCProgressTimerTypeBar,6 } CCProgressTimerType;①类型1... 阅读全文
posted @ 2013-09-09 14:23 【Winco】 阅读(584) 评论(0) 推荐(0) 编辑
摘要:CD动画,也就是技能冷却。介绍:技能冷却的效果跟魔兽世界中的技能冷却类似,功能如下:技能图标点击时会有按下效果,抬起后开始冷却计时,冷却计时技术后该图标才可以再次进行点击。实现:三层实现:最下方是CCMenuItemImage 按钮图片 -- normal中间是半透明模版图片 -- stencil最上方是CCProgressTimer 图片是最下图中较大的图片 -- click这是使用的图片资源(normal,click,stencil)动画原理:非冷却状态时只显示CCMenuItemImage,当冷却开始计时时,将按钮设为不可点击状态,同将半透明模板和进度条精灵设置为可见状态,并且进度条精灵 阅读全文
posted @ 2013-09-09 14:12 【Winco】 阅读(1227) 评论(0) 推荐(0) 编辑
摘要:方法一、简单递归这个就不说了,小n怡情,大n伤身啊……当n=40的时候,就明显感觉到卡了,不是一般的慢。 1 //输出第n个 Fibonacci 数 2 #include 3 using namespace std; 4 5 long long Fibonacci(int n) 6 { 7 if(n>n, n) 16 cout 3 #include 4 #define MAXN 300 5 using namespace std; 6 7 long long F[MAXN]; 8 int i; 9 long long Fibonacci(int n)1... 阅读全文
posted @ 2013-09-09 12:10 【Winco】 阅读(684) 评论(0) 推荐(0) 编辑
摘要:描述计算 1 至 n 中数字 X 出现的次数,其中n≥1,X∈[0,9]。解题思路这是一道比较简单的题目,举个例子先:假设n=11,X=1,那么就是求 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 这 11 个数字中 1 出现的次数,很容易能看出来结果为 4,在 1 和 10 中各出现了一次,在 11 中出现了两次。最简单的办法就是依次遍历 1 至 n,再分别求每个数字中 X 出现的次数,代码如下所示: 1 #include 2 3 // 计算数字 X 在 n 中出现的次数。 4 int countOne(int n, int x) { 5 int cnt ... 阅读全文
posted @ 2013-09-09 10:16 【Winco】 阅读(464) 评论(0) 推荐(0) 编辑
摘要:阅读cocos2d-x demo的代码,我们会看到有些头文件中使用CREATE_FUNC这个宏,那么它是做什么的呢?在cocos2d-x 又是起什么作用呢?下面我们就一起来看看CREATE_FUNC宏的源代码。 1 /** 2 * define a create function for a specific type, such as CCLayer 3 * @__TYPE__ class type to add create(), such as CCLayer 4 */ 5 #define CREATE_FUNC(__TYPE__) \ 6 static __TYPE__* c... 阅读全文
posted @ 2013-09-06 15:29 【Winco】 阅读(789) 评论(0) 推荐(0) 编辑
摘要:看过cocos2d-x 自带demo的朋友相信很多人都会发现demo中用了很多do{}while(0)和CC_BREAK_IF宏.他们是做什么用的呢? 其实这个是c++中的一个技巧. 我们时常会调用某个函数来创建一个对象,但由于内存不足或其他异常情况发生时对象可能会创建失败,创建失败我们就要结束当前程序转到错误处理地方去处理错误或释放已生成的对象。 1 int* p1 = new int; 2 3 CCObject* o1 = fun1(); 4 if(!o1) goto catchcode; 5 6 CCObject* o2 = fun2(... 阅读全文
posted @ 2013-09-06 15:27 【Winco】 阅读(590) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示