c++
偶像罗斯福
从事手机游戏事业十多年,欢迎大家交流探讨
展开
-
关于cocos2dx不同平台图片渲染实现的分析
最近项目中遇到这样一个问题:cocos2dx渲染图片的效率比较低,为了提高渲染效率有几种办法。1. 多线程进行渲染,cocos2dx 3.0 就采用的这个办法。2. 在程序启动时,统一进行渲染图片并将渲染的结果放到内存池中,真正用的时候从内存池中获取。原创 2014-02-27 10:54:23 · 1701 阅读 · 0 评论 -
c++11的foreach用法
#include <stdlib.h>#include <stdio.h>#include <vector>#include <iostream>using namespace std;int main(int argc, char* *argv){ vector<int> vct; vct.push_back(100); vct.push_back(100);原创 2015-09-17 16:19:05 · 12124 阅读 · 0 评论 -
TCMalloc 安装和使用
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:October 20th, 2014 前面三篇译文《TCMalloc:线程缓冲的Malloc》、《使用TCMalloc的堆栈检查》、《使用TCMalloc进行堆栈分析》介绍了转载 2016-05-10 16:51:30 · 1161 阅读 · 0 评论 -
关于mmorpg游戏的压力测试
用配置文件即可表达发送的游戏协议json游戏协议二进制游戏协议用probuf的反射机制是否能解决?服务端进行记录log,方便调试要求每一个客户端登录游戏只有一条唯一的log 每一个客户端退出游戏只有一条唯一的log 每次存盘都记录一条日志 每次加载数据都记录一条日志日志内容time,login_type,user_id,role_id,原创 2016-05-13 13:42:28 · 1975 阅读 · 0 评论 -
华为、酷派手机logcat不输出日志解决方案
酷派手机(大神):拨号盘输入*20121220# -> 选择日志输出级别 -> 选择java log level -> 选择LOGD即可。华为:进入拨号界面输入:##2846579##依次选择ProjectMenu—后台设置—-LOG设置—LOG开关 点击打开原创 2015-07-14 15:34:35 · 5052 阅读 · 3 评论 -
详解结构体、类等内存字节对齐
先说个题外话:早些年我学C程序设计时,写过一段解释硬盘MBR分区表的代码,对着磁盘编辑器怎么看,怎么对,可一执行,结果就错了。当时调试也不太会,又根本没听过结构体对齐这一说,所以,问题解决不了,好几天都十分纠结。后来万般无奈请教一个朋友,才获悉可能是结构体对齐的事,一查、一改,果真如此。 问题是解决了,可网上的资料多数只提到内存对齐是如何做的,却鲜有提及为什么这样做(即使提,也相当简转载 2016-05-30 11:06:13 · 359 阅读 · 0 评论 -
服务器架构设计 -- 玩家数据集中管理
玩家有选服务器的操作,玩家全世界只有一份游戏资料。 玩家的id全世界唯一。名字唯一。 无法支持合服。出现村服,鬼服务是没有好的办法的。 玩家的数据统一放到一个数据库集群中,dbserver根据玩家id直接散列写入到不同的数据库中。 后期考虑加入redis集群。加入redis的好处是服务器意外崩溃,玩家的关键数据不会丢失。缓解数据库的查询的压力。写入的速原创 2016-11-17 16:51:21 · 903 阅读 · 0 评论 -
windows平台probuf协议socket通信例子
#include "common/op_socket.h" #include "people.pb.h" #pragma comment(lib, "libprotobuf.lib") #pragma comment(lib, "libprotoc.lib") using namespace std; int main() { GOOGLE_PROTO原创 2016-11-30 10:06:08 · 680 阅读 · 0 评论 -
C++实现RTMP协议发送H.264编码及AAC编码的音视频
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder转载 2016-12-05 10:33:16 · 366 阅读 · 0 评论 -
最简单的基于FFmpeg的推流器(以推送RTMP为例)
=====================================================最简单的基于FFmpeg的推流器系列文章列表:《最简单的基于FFmpeg的推流器(以推送RTMP为例)》《最简单的基于FFMPEG的推流器附件:收流器》=====================================================转载 2016-12-07 17:01:45 · 657 阅读 · 0 评论 -
有关c11的functional
auto proof = []()->void { cout << "Hello function!" << endl; }; map<string, function<void(void)> > commands = { {"proof", proof} }; auto func = commands["proof"]; func();原创 2016-12-09 17:18:17 · 466 阅读 · 0 评论 -
面向对象简单解释
继承{1,2,3}{1,2,3,4,5}class foo(object): def __init__(self, arg) self.a = 100; def doAction(self, arg1, arg2) self.b = arg1 self.c = arg2class child(foo): def __init_原创 2017-11-17 14:08:07 · 476 阅读 · 0 评论 -
gcc/g++ 关闭warning警告
-w 关闭编译时的警告,也就是编译后不显示任何warning-Wall 选项意思是编译后显示所有警告。原创 2018-02-05 14:08:12 · 8239 阅读 · 0 评论 -
GDB高级命令整理
和windows相似的追踪功能在上设置一个观察点:(gdb) watch var并使该观察点有条件:(gdb) cond &amp;amp;amp;amp;lt;watchpoint_number&amp;amp;amp;amp;gt; var&amp;amp;amp;amp;gt;=value如果你想记录到一个文件:(gdb) set logging file &amp;amp;amp;amp;lt;filename&am原创 2018-10-09 15:47:45 · 440 阅读 · 0 评论 -
jsoncpp,rapidjson语法比较以及范例:probuf转化成json
{ file: { key: &amp;amp;quot;value&amp;amp;quot;, array: [ { key00: &amp;amp;quot;value00&amp;amp;quot;, key01: &amp;amp;quot;value01&amp;amp;quot; }, { key1原创 2018-10-27 18:45:11 · 1614 阅读 · 0 评论 -
vector中的剥离现象
#include <stdlib.h>#include <stdio.h>#include <vector>#include <iostream>using namespace std;class BaseClass{public: int a; string b; BaseClass() : a(1), b("BaseClass") {原创 2015-10-06 11:48:36 · 469 阅读 · 0 评论 -
常见的socket出错总结
case ECONNREFUSED: reason = REASON_NO_SUCH_PORT;break; 没有这个端口 caseEAGAIN: reason = REASON_RESOURCE_UNAVAILABLE;break;buff已满 caseEPIPE: reason原创 2015-09-24 19:20:48 · 38672 阅读 · 0 评论 -
cocos2dx andriod平台遇到的问题总结
1. 调用std::sort函数的文件加头文件#include 2. 发现无法访问网络,在 AndroidManifest.xml 中加入以下代码uses-permission android:name="android.permission.INTERNET">/uses-permission> uses-permission android:name="android.pe原创 2014-02-28 11:49:29 · 1947 阅读 · 0 评论 -
统计运行时间的宏
#include #define TIME_BEGIN(name) struct timeval tv##name; \ gettimeofday(&tv##name, NULL); \ int val##name = tv##name.tv_usec; \ int min##name = tv##name.tv_sec;#define TIME_END(name) gett原创 2014-03-11 11:35:58 · 1033 阅读 · 0 评论 -
对cocos2dx 2.0.4 的改造
1. ccnode.cppcleanup(),removechild(),detachChild() 加入以下代码,避免对对象的过度释放引发crash if(child->retainCount() { CCLog("[%s:%d] retainCount(%d)",__FILE__,__LINE__, child->retainCount());原创 2014-03-06 07:47:17 · 1230 阅读 · 0 评论 -
makefile高级用法简要说明
#!/bin/makefiles=main.o res_table_loader.o res_csv.o global.o res_table_builder.o res_csv_row_visitor.oCC=g++CFLAGS=-Wall -g -Iinclude SOLIBS=-L/usr/lib -liconv.2# $? 代表依赖文件列表中被改变过的所有文件。# $^ 代表原创 2014-03-11 19:25:57 · 823 阅读 · 0 评论 -
将图片拷贝到三星note 3上
adb push IMG_0230.PNG /sdcard/DCIM/Camera原创 2014-03-12 19:30:47 · 694 阅读 · 0 评论 -
mac下编译静态库和动态库
1. 编译出.o文件 g++ -c mylib.cpp2. 编译静态库 ar -r libmylib.a mylib.o3. 链接静态库 g++ main.cpp -L. -lmylib4.用valgrind检查代码 valgrind --tool=memcheck --log-file=1.txt ./a.out原创 2014-03-28 14:42:14 · 4567 阅读 · 0 评论 -
astar算法伪代码
伪代码 //创建两个表,OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。 //算起点的估价值; //将起点放入OPEN表; while(OPEN!=NULL) { //从OPEN表中取估价值f最小的节点n; if(n节点==目标节点){ break; } for(原创 2014-03-24 12:54:54 · 3160 阅读 · 0 评论 -
sccanf正则匹配范例
#include #include int main(){ char buf[64]; int rst = sscanf("[moudle],asdfasdf","[%[^]]",buf); printf("%s,%d", buf, rst); return 0;}原创 2014-04-08 10:17:49 · 849 阅读 · 0 评论 -
cocos2dx 3.0 研究(2) ui编辑器
cocos2dx 的ui编辑器个人不是太喜欢原创 2014-05-22 10:46:52 · 1336 阅读 · 0 评论 -
Objective-C的语法简要说明(c++对照)
很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头疼,Objective-C的代码在语法上和Java, C++有着很大的区别,有的同学会感觉像是看天书一样。不过,语言都是相通的,有很多共性。下面列出Objective-C语言的语法和Java,C++的对比,这样你就会很容易Objective-C的语法是怎么回事了。先目睹原创 2014-07-01 18:09:43 · 810 阅读 · 0 评论 -
动作手游代码分析3
碰撞的初始化代码: b2Vec2 gravity; gravity.Set(0.0f, -0.0f); _world = new b2World(gravity); _world->SetAllowSleeping(true); _world->SetContinuousPhysics(true); _myContactListe原创 2015-06-04 18:43:43 · 1532 阅读 · 0 评论 -
2015年手机分辨率整理
android系统 宽 长 分辨率比 备注 540 960 9:16 720 1280 9:16 小米2s、红米 1080 1920 9:16 小米4 480 854 9:16 小米1 1200 1920 10 : 16 android pad1(huawei)ios系统 宽 长 分辨率比原创 2015-07-08 17:13:27 · 947 阅读 · 0 评论 -
非规格化浮点数(nan, inf, subnormal等)的判别和运算
#include <stdio.h> #include <math.h> #include <float.h> int main() { float f = FLT_MIN; float r = 1.0/f; printf("Normal: f = %e, r = 1/f = %e\n", f, r); int subf_i = 0x3原创 2015-07-17 17:23:59 · 4254 阅读 · 0 评论 -
box2d之SetLinearVelocity
SetLinearVelocity 是设置线性速度,跟力没什么大关系.相当于瞬间让这个物体的速度达到你指定的值.理论上你可以指定任何大小的速度,但cocos2d的引擎模拟能力有限,不能模拟过高速度的物体,会出现各种奇怪的问题,比如穿透什么的.另外,刚体有个bullet属性,设置成Yes,让引擎把这个刚体当做子弹对待会好一些.PS. 这种处理子弹的方法不是很好,尽量别用物理引擎来实现子弹射击的机制.原创 2015-07-17 17:50:00 · 989 阅读 · 0 评论 -
const 用法
非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);唯一的例外是对于mutable修饰的成员。加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调...转载 2018-11-22 15:08:54 · 278 阅读 · 0 评论