摘要:
在unix和linux下的获取时间和在win32获得的时间是不同的,所以要分开来写。代码如下: 1 std::string Tools::get_date_now() 2 { 3 #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS) 4 struct cc_timeval now; 5 CCTime::gettimeofdayCocos2d(&now, NULL); 6 struct tm *tm; 7 time_t tp = now.tv... 阅读全文
摘要:
例如”ababc",要求返回"ab"。因为"ab”连续重复出现且最长。用C/C++语言写一个函数完成该算法 1 void GetSub(char* str) 2 3 { 4 5 char *p,*q,*temp; 6 7 p = str; 8 9 q = p + 1;10 11 int len = 0;//记录连续重复子串的长度12 13 int max = 0;//记录连续重复子串的最大长度14 15 char data[100];//临时数组,用于保存最长重复子串16 17 18 19 while(*p != '\0')20 21 { 阅读全文
摘要:
几乎一年没有写博客了,说没时间那是借口,唯一的原因是,年纪越大越发觉自己肤浅。有些想法还没提笔,就发现很幼稚,就不敢发出来贻笑大方了。这次先给大家说个小故事:从前有三个屌丝,聚在一起做网络,提供免费的网络服务,砸锅卖铁,通宵达旦,除了卖肾啥都做了。3年后终于做到了五百万用户,对于年轻人来说,能把五百万人玩弄于鼓掌之间,已经是很牛逼轰轰的事了,不过用户越多,成本越高,每年服务器、带宽租金、房租水电、广告运营等成本,已经达到了十七八万,屌丝们不得不面对一个终极问题:如何盈利?屌丝们定了三盘沙县水饺,围着一箱子的冰啤酒开始计算:按照最近一月的登陆情况来看,四百万个账号已经不活跃了,真正有商业价值的只 阅读全文
摘要:
游戏开发中往往会遇到数据的及时更新,层间通信等问题,例如游戏中花费金币购买道具,完成后需要及时更新状态栏的个人金币信息。Cocos2d-x给我们提供了一种解决方案,这就是使用观察者模式,CCNotificationCenter是一个单例类。使用的方式很简单,在初始化时可以添加一个观察者CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(ObserverModel::receiveMsg), "Update", NULL);然后在需要发消息的地方po 阅读全文
摘要:
1.打开Resources文件下的info.plist文件2.在plist中添加一行,key为:View controller-based status bar appearance,设置value为NO(如下所示)这样即可隐藏掉状态栏。另外,如果以上方法行不通,网上还有其他方法。(ps:我没试过,因为我按照上述方法能隐藏。 先mark下)2. 如果不管用,在RootViewController.mm里面(Cocos2d-x项目),加上:1 - (BOOL)prefersStatusBarHidden2 {3 return YES;4 }3. 直接在RootViewController.mm里 阅读全文
摘要:
相信大家在玩游戏的过程中都会遇到一个loading的界面,loading界面的作用主要是为了加载游戏中需要用到的资源。在比较大型的游戏中,资源通常会占用很大的空间,如果不做一个预加载,在切换界面的过程中很容易造成卡屏的现象。下面先给出运行效果。今天要讲解的内容便是加载界面中的进度条控件的使用方法,在这里我们只学习控件的使用,不讲解加载过程的逻辑处理。 所谓的进度条,其实不过是两张纹理的组合,其中一个纹理全部显示出来,而另一个纹理会随着加载的过程有一定的变化,我们可以为它设置一个动作,也可以直接设置它显示的百分比,首先我们来看一下两张图片 :这就是未加载时和加载完成后的进度条显示,加载完成后,. 阅读全文
摘要:
一直使用vs2010开发cocos2dx,查看cocos2dx的log也一直使用CCLog来打印到vs2010的输出控制台,同时也可以将log输出到命令行窗口。log输出方法一:使用CCLog输出到vs控制台,当然了,这也可以跨平台输出log。如:CCLog("error buffer:%s" ,response->getErrorBuffer());log输出方法二:在打印前,加入以下代码:1 AllocConsole();2 freopen("CONIN$", "r", stdin);3 freopen("CONO 阅读全文
摘要:
使用任何版本的Cocos2d-x(1.x,2.x,3.0),在onEnter中调用addChild,都要小心谨慎,因为它有可能导致两种莫名其妙的BUG,莫名其妙的BUG当然难以定位了!更何况这个BUG隐藏在引擎的底层。接下来是场景还原:在某个节点下,需要执行这样一段逻辑,在游戏场景中,添加几个节点,由于游戏场景就是该节点的父节点,于是就直接getParent然后调用父节点的addChild,在onEnter函数中添加看上去比较合适,因为这时候该节点的父节点可以访问,而在init函数中,还没有被添加到游戏场景中神奇的事情发生了,在这之后添加的节点,都无法播放动画了,而把节点添加的位置,移到该节点 阅读全文
摘要:
1 init()和onEnter()这俩个方法都是CCNode的方法。其区别如下: 2 3 1.其被调用的顺序是先init(),后onEnter()。 4 5 6 7 2.init()在类的初始化时只会调用一次。 8 9 10 11 3.onEnter在该类被载入场景的时候被调用,可能会发生多次。12 13 14 15 4.CCLayer* cclayer = new MyLayer();16 17 这种情况下,只会触发onEnter。18 19 5.CCLayer* cclayer = MyLayer::create();20 21 这样情况下,既会触发init()方法,也会... 阅读全文
摘要:
在计算机中是以字节为单位,每个地址对应一个字节,一个字节8bit。在C中,除了8bit的char以外,还有16bit的short,32位的int,64位long,当然具体要由编译器决定,可以通过sizeof来获取不同类型在内存中占用的字节数。在计算机系统中,当物理单位的长度大于1个字节时,就要区分字节顺序。常见的字节顺序有两种:Big Endian(High-byte first)和Litter Endian(Low-byte first),当然还有其他字节顺序,但不常见,例如Middle Endian。一、最高有效位、最低有效位 要理解Big Endian和Little Endian,首先. 阅读全文