c++
Zszen_John
6年网络移动广告开发经验,2年页游团队开发经验,6年iOS,安卓cocos2dx开发经验,2年iOS原生应用开发经验,2年Unity2d开发经验,5年H5游戏/互动开发经验。 个人iOS app store搜索账户: Zstudio,为他人开发游戏在app store下搜索账户:Reanix。
展开
-
坑爹的atoi
很多时候, 会将数据压缩存储, 这时候需要把数字存储到字符串当中而分割ho原创 2014-07-30 22:52:07 · 488 阅读 · 0 评论 -
平滑的贝赛尔曲线
http://blog.csdn.net/microchenhong/article/details/6316332转载 2015-01-26 12:39:35 · 817 阅读 · 0 评论 -
变量命名
清晰写法aa_bb_cc_dd便于书写写法aaBbCcDd变量命名结构顺序{动作}{类型}{名称}{附属}例如getCountOfAppleByJohn();布尔值用is更明了, 在复杂程序中很容易列出例如isHasAppleWithJohn();内部函数和方法, 最好以下划线开头, 这样避免外部类调用误引用错例如_internalApp原创 2015-04-17 17:23:15 · 553 阅读 · 0 评论 -
c下对比时间的处理方法
超出指定日期返回true, 输入字符串格式"2015/03/09"bool ZSTime::isOutOfDate(constchar* targetDate){stringstream ss(targetDate);string month, day, year;getline(ss, year,'/');getline(ss, month,'/');ge原创 2015-05-13 16:51:16 · 400 阅读 · 0 评论 -
Box2d总结
1.物理事件的结构b2world 物理世界的一切 b2body 每个存在世界上的物体 b2fixture 每个物体都有自己的属性和形状, 而且形状不一定只有一个 b2shape 用于描述fixture的形状, 只能使用正圆或者凸多边形 ray 并不是物体, 是射线, 用于计算, 但并看不见 debugdraw 可以绘制看不见的物理世界的物体形状, 以及碰撞, 法线等一系列通过线条来描绘出2原创 2015-06-09 18:39:05 · 498 阅读 · 0 评论 -
cocos2d-x v2 升级到 v3
常用类名改变删除了CC前缀 CCAction CCAction -> Action CCPoint -> Point CCAnimation -> Animation CCSprite -> Sprite CCLabel -> Label CCMenu -> Menu CCObject -> Ref CCNode -> Node CCSce原创 2015-09-07 16:45:34 · 1566 阅读 · 0 评论 -
c++ 字符串输出限制突破
一般我们开发用printf, nslog, cclog来实现输出, 而普通时候, 这些功能也都够用, 但是当遇到大数据的时候, 这就比较难办了, 字符串内存是数据的, 但是不论怎么print都出不全, 一阵老以为自己数据出错, 但怎么都查不到错误, 于是发现了xcode下每次输出都在1w6左右的字符, 但是我不能保证每个平台输出的限制都一样. 这样我就写了个循环输出的方法, 确实大数据都显示出来了,原创 2015-09-09 21:40:07 · 1171 阅读 · 0 评论 -
cpp 考试算法
比较大小, 不使用条件判断int a,b;int c = ((a+b)+abs(a-b))/2;获取字符串长度strlen("123456");//定义int strlen(char* str){ if(str==nullptr) return 0; int length = 0; while(*str++!='\0'){ length++; }原创 2015-09-06 15:41:03 · 858 阅读 · 0 评论 -
C++11 CPP11 学习
常成员函数const对象只能调用常成员函数const Node* node = Node::create();node->setPostion(ccp(0,0)); //出错node->getPostion(); //不会报错//定义{ const Vec2& Node::getPostion() const{ return _postion; }}联合关键字原创 2015-09-09 12:40:15 · 865 阅读 · 0 评论 -
c++ 格式化字符串
lambda写法: auto StringFormat = [](const char* format, …){ va_list params; char buf[1024]; std::vsnprintf(buf, 1021, format, params); return std::string(buf); };//StringFormat(“%d”,原创 2015-09-12 22:50:14 · 780 阅读 · 0 评论 -
认识 Cocos2dx 3.x
cpp11:支持了auto标识符, 这样可以大大简化了声明变量的类型auto标识符: 泛类定义nullptr 代替 NULL, NULL只代表内存地址位为0, 这样做有时会出问题, cpp11后尽量用nullptrstatic_cast< Class >obj相当于c语言的(Class)obj, dynamic_cast更智能, 无法转换会返回nullptr设置指针型布尔 std::sha原创 2015-09-07 11:06:37 · 1975 阅读 · 1 评论 -
cocos studio2.x 对象绑定
鉴于cocos studio2.x 绑定自定义事件过于复杂, 本大人总结了简单的实现方式, 类似ccbuilder的方法:首先定义函数:Widget* CCBuilderLayer::getCSBUnit(const char* unitName){ return csbNode==nullptr? nullptr : ui::Helper::seekWidgetByName(csbNode原创 2015-09-15 16:12:03 · 720 阅读 · 0 评论 -
Objective-C与C++通信
大家知道 objc文件是.m c++文件是.cpp 而xcode提供了过度文件.mm 在.mm中即可使用c++的功能, 也可以使用objc的功能, 真的算上一个完美的代理创建c++代理一般在objc中创建id<class> delegate可以指向代理 不过我这次讲到的是在标准objc中加入c++类型代理下面创建一个同时包含objc和c++代理对象的方式 创建.mm通用文件创建objc原创 2015-09-30 18:01:26 · 771 阅读 · 0 评论 -
好玩的位操作开关群
作为开发者, 经常应付开发中涉及到的变量, 就好像脚心上长痘痘一样, 挠也不是, 不挠也不是. 每个控制变量单独设置是没有什么, 但是设置多了就烦了, 一不好控制, 二不好管理的使用位开关的好处是, 便于管理, 也处理速度快, 优于数值和布尔处理速度 下面介绍位操作的使用方法创建:利用枚举创建多个相关或者不相关的开关类型, 通过枚举集中管理, 可以一目了然, 增加的时候改变最后一位值, 最多设置3原创 2015-11-10 02:08:45 · 659 阅读 · 0 评论 -
C++ vector 经常用到的小知识
打乱vectorrandom_shuffle(quence.begin(), quence.end());获取随机位的值srand(unsigned(time(0)));...poolDirect[rand()%poolDirect.size()]原创 2015-12-11 17:25:32 · 420 阅读 · 0 评论 -
android 下 cocos2dx 后台黑屏的解决办法
问题描述:1.运行游戏,无问题2.游戏点击网站链接,或进入后台,回来黑屏3.eclipse控制台报错: 03-01 17:51:55.347: W/Adreno-ES20(8664): <__load_uniform_matrix:1091>: GL_INVALID_OPERATION 03-01 17:51:55.347: D/cocos2d-x debug info(8664): O原创 2016-03-01 21:36:00 · 7818 阅读 · 1 评论 -
判断三点是顺时针还是逆时针方向
http://blog.sina.com.cn/s/blog_631f9e4b0100g874.html设 p1=(x1,y1), p2=(x2,y2), p3=(x3,y3) 求向量 p12=(x2-x1,y2-y1) p23=(x3-x2,y3-y2) 则当 p12转载 2015-01-26 12:14:07 · 3290 阅读 · 0 评论 -
用vector取代C-style的数组
以前的笔记, 但是原帖地址没保存 所以没有原帖地址 提起数组,大家想必都很熟悉,你可以用索引和指针来操作数组,给程序设计带来了很大的灵活性。但是你知道它有许多天生的缺陷吗? 首先,数组的越界可能会引起程序的崩溃(如果崩溃了,还算你走运^_^)。其次是动态性不好,包括动态改变大小,动态申请。诸如此类的事,一定会让你伤透脑筋。有什么办法可以解决这些问题吗?转载 2014-12-28 16:52:45 · 700 阅读 · 0 评论 -
输出定长度的数字
%{n}dhttp://blog.csdn.net/wguoyong/article/details/6845595转载 2014-08-08 00:09:28 · 579 阅读 · 0 评论 -
制作动画序列帧
http://blog.csdn.net/sdhjob/article/details/8243980转载 2014-08-08 00:14:10 · 1329 阅读 · 0 评论 -
c++中判断指针类型对象
a* ptr = dynamic_cast(pool[0]);如果原创 2014-08-22 03:03:10 · 4130 阅读 · 0 评论 -
vector基础知识
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include vector属于std命名域的,因此需要通过命转载 2014-08-22 18:37:30 · 541 阅读 · 0 评论 -
box2d关于投影预瞄准的算法推演过程
首先, 自己程序很菜, 所以从最初的写法到最终走了很多弯路, 网上的资料也比较sh原创 2014-08-26 23:35:29 · 1356 阅读 · 0 评论 -
static和extern
来自: http://blog.csdn.net/cclive1601/article/details/8063505一些基本概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到转载 2014-11-10 16:01:14 · 561 阅读 · 0 评论 -
c++的一些术语
声明, 定义,初始化,赋值转载 2014-11-10 16:18:39 · 577 阅读 · 0 评论 -
学习一下c++的map
mapdicInt;dicInt.insert(pair(1,"a")); dicInt.insert(pair(2,"b")); dicInt.insert(pair(3,"a")); dicInt.insert(pair(4,"d")); map::iterator it; it = dicInt.find(1); if (it!=dicInt.end()) {原创 2014-10-30 00:28:49 · 619 阅读 · 0 评论 -
关于cocos2dx播放音效的bug以及修正方法
游戏开发的时候用到了sfx作为报警音一直looping, 然后发现了个问题,报警音在响了一段时间后消失了, 其中没有触发任何事件后来我模拟了这个环境, 在场景初始的位置开始播放报警音CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("sfx_timesup.wav", true);然后在场景按钮上添加了按钮原创 2014-11-15 22:02:31 · 5566 阅读 · 1 评论 -
C++ vector一边遍历一边删除元素
使用iterator迭代器对vector进行遍历,删除元素时使用的erase函数返回的是vector中的下一个元素。it =ObjectVector.erase(it);http://ecnuloveexpo.blog.163.com/blog/static/1219589962012924113456858/转载 2014-10-29 13:30:54 · 1676 阅读 · 0 评论 -
c++小知识
数值型的最大最小值DLB_MAX,DLB_MIN,FLT_MAX,FLT_MIN,INT_MAX,INT_MIN。转载 2014-11-05 22:34:39 · 860 阅读 · 0 评论 -
cocos2dx 2.x 安卓工程的创建 Mac下
首先, 配置环境来自:转载 2014-11-24 18:26:57 · 1360 阅读 · 0 评论 -
一般c++编译出现"name lookup of '变量名' changed [enabled by default]"的警告
如果你在局部作用域嵌套了同名局部变量会出现这个错误 : name lookup of '变量名' changed [enabled by default]{int a; { int a; }a = 1;....}在之后的调用虽然是指向第一个变量, 但是会产生歧义, 还是将最内部的变量和外部区分改名为好原创 2014-12-20 16:10:28 · 9776 阅读 · 0 评论 -
苹果在15年2月就要强制要求必须支持x64的app
苹果消息: https://developer.apple.com/news/?id=10202014a64-bit and iOS 8 Requirements for New Apps来自: http://blog.163.com/fuxiaohui@126/blog/static/13174582620138251356134/让App支持32-bit和6转载 2014-12-24 23:49:51 · 891 阅读 · 0 评论 -
20个优化as代码的方法
来自:http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/A_2107-20-Tips-to-Optimize-your-ActionScript.html如何计算代码消耗的时间var start:Number = getTimer();翻译 2014-12-28 16:49:59 · 785 阅读 · 0 评论 -
pebble mac开发
pebble 鹅卵石这款手表公司倒闭了,公司卖给了fitbit. pebble原老板带着小姨子跑了。留下我们一群懵比等待pebble time2的程序狗。话说回来,pebble的开发体验真的很不错,pebble cloud云开发环境超级简单。但是迫于pebble运行在云端,难免性能会有折扣,而且经常crash,或者连不上模拟器和手机,这是很头痛的事。关键还有1年,pebble服务器就不再支持了。所以原创 2017-01-04 14:41:41 · 1482 阅读 · 0 评论