- 博客(21)
- 资源 (14)
- 收藏
- 关注
原创 切记循环内修改判断条件要谨慎
bug现象:我更改了场景更新时间,将原来一个场景的更新时间改成了3种不同类型分别不同的更新时间,然后场景里面的怪物就不运动了。 原代码:time_t diff = curTick - lastUpdateTick_;//std::coutif (diff > 500)diff = 500;lastUpdateTick_ = curTick;
2012-05-11 10:31:18
572
原创 stl中的set_difference的使用
appearGridSet.resize(9); // 先保证空间的大小,不用reserve,用reserve后end()位置没有变 result = std::set_difference( thisNotifyGridSet.begin(), thisNotifyGrid
2011-07-13 15:09:48
1464
原创 boost filesystem 使用
随便记录一下,怕以后忘记。#include #include #include #include class FileUtils{public: static void listFiles(std::string& path, std::vector& vec); static void listAllFiles(std::string& path,std::string& ext,
2011-06-23 11:17:00
1907
原创 lua 中 require
在lua 5.0 中require: require的另一个功能是避免重复加载同一个文件两次。Lua保留一张所有已经加载的文件的列表(使用table保存)。如果一个加载的文件在表中存在require简单的返回;表中保留加载的文件的虚名,而不是实文件名。所以如果你使用不同的虚文件名require同一个文件两次,将会加载两次该文件。比如require "foo"和require "fo
2011-06-23 11:09:00
2888
原创 犯错误了,boost中的asio的asyncWrite
又犯错误了,在用bosot中的asio中的asyncwrite时,该函数为异步写函数,一经调用就立即返回,期间有可能调用多个asyncWriteSome函数。所以调用的时候要注意,不能一直调用asyncWrite,要等待上一个asyncwrite调用完成后(调用成功后有一个回调函数asyncWriteHandle),然后才能调用下一个asyncwrite,否则会出现这种情况,下一个的a
2011-06-19 16:18:00
4834
原创 游戏数据同步
<br />游戏同步,今天问了一下CC,游戏中同步的方法:<br /> 数据描述策略上也分两种,走格子 和 物理位置同步,<br />物理位置同步,定时发包,每隔100ms发同步包,具体的物理位置。<br /> 客户端进行补偿的方法有:曲线补偿(效果不是很好), 物理补偿(物理预判等,加速度,加快发包速度,看一下对应的物理引擎中,很多有讲的,havok和phyx) 这个效果好一些。<br />服务器可以通过减少传送的数据包,压缩数据包,降低同步频率,减少远处的包,将位置送int32改为int16.<br /
2011-05-30 22:02:00
939
原创 gtest、nm、调试工具
<br />linux下的可视化调试工具 DDD<br />linux下查看库之间生成命令nm<br />gtest测试框架<br />
2011-05-17 23:44:00
480
转载 lua与C++交互
<br />第1步:下载<br />从官方主页www.lua.org下载Lua源代码,最新版本为5.1.3。<br />解压之后找到“[Lua]/src”文件夹,这里面就是Lua了,不过还不能直接使用。<br /> <br />第2步:编译lua<br />使用任意ANSI C编译器,在这里使用VS2005编译LUA。具体步骤如下:<br />a.打开vs的命令行工具,工具-->visual studio 2005 command prompt<br />b.跳转到[Lua]目录,例如:cd D:/Pro
2011-05-07 17:23:00
1374
转载 网络驱动器无法显示SVN图标问题
<br /> 隐射的驱动器盘符里的svn目录没有显示那些状态图标,导致修改了的文件都看不到,搜索了一下,设置如下:<br />检查SVN设置如下: 右键->TortoiseSVN->Settings->Icon Overlays->Driver Types : 选中"Network drives"后,应用即可。<br />ok了。
2011-04-26 18:25:00
966
原创 effective C++读书笔记八 —— 定制new 和delete
条款49:了解 new-handler的行为<br /> (1)设计良好的new-handler函数必须做以下事情:<br />l 让更多内存可被使用。刚开始分配一大块内存,而后当new-handler第一次被调用,将它们释放还给程序使用。<br />l 安装另一个new-handler<br />l 卸除new-handler。将null传给set_new_handler,一旦没有安装任何new_handler, operator new 会在内存分配不成功时抛出异常。<br />l
2010-12-12 17:08:00
523
原创 effective C++读书笔记七——模板与泛型编程
条款41:了解隐式接口和编译器多态<br /> 面向对象编程世界总是以显式接口(函数签名为中心)和运行期多态(通过virtual函数)来解决问题。而templates则是相反,通过隐式接口和编译期多态。隐式接口奠基于有效表达式。编译器多态,在templates的任何函数调用,造成template的具现化,使这些调用得以成功,这样的具现行为发生在编译期。39. 条款42:了解typename的双重意义<br /> (1)声明templates参数时,前缀关键字class和typenam
2010-12-12 17:06:00
472
原创 effective C++读书笔记六 —— 继承与面向对象设计
29 条款32:确定你的public继承塑模出is-a关系 Public继承意味is-a。适用于base classes身上的每一件事情一定也要适用于derived classes身上。因为每一个derived class对象也都是一个base class对象。30 条款33:避免遮掩继承而来的名称 derived classes内的名称会遮掩base classes内的名字。为了让遮掩的名称再见天日,可使用using 声明式或转交函数。 转交函数:在子类声明一个同名函数
2010-12-12 17:04:00
441
原创 effective C++读书笔记五 —— 实现
24 条款26:尽可能延后变量定义式的出现时间<br />(1)尽可能延后变量的定义式的出现时间,这样做可增加程序的清晰度并改善程序的效率。<br />(2)<br />Widgetw; <br />for (inti = 0; i < n; ++i) for (inti = 0; i < n; ++i)<br />{ {<br /> w = f(i);
2010-12-12 17:02:00
346
原创 effective C++ 读书笔记四 —— 设计与声明
16 条款18:让接口容易被正确使用,不易被误用。(1)欲开发一个“接口容易被争取使用,不易被误用的接口”,首先必须考虑到客户可能出现什么样的错误。比如设计一个日期的class设计构造函数: classDate{public: Date(intmonth, intday, intyear); ...};//这种做法,不容易防止错误。Date d(30,3,1995);structDay{ explicitDay(intd):val(d){} intval;};struct
2010-12-12 17:00:00
434
原创 《effective C++》读书笔记三——资源管理
11. 条款13:以对象管理资源<br />(1)明确什么叫资源?资源一旦用了它,将来必须还给系统。常见的资源有:内存,文件描述器,互斥锁、图形界面中的笔刷和字型,数据连接,以及网络。<br /> <br />(2)当使用new操作符后,就必须使用delete操作符来释放资源,但是单纯依赖函数总是会执行delete语句是行不通的,为确保资源总是被释放,把资源放在对象内,便可依赖C++的析构函数自动调用机制确保资源始终被释放。<br />(3)资源管理对象的两个关键想法:<br />l 获得资源后立刻放进管
2010-12-12 16:56:00
387
原创 boost 1_45_0 + vs 2005 安装
1.下载安装包boost 1_45_0 http://sourceforge.net/projects/boost/files/boost/1.45.0/ 选择下载 windows 或 unix 版本2.解压缩到d:/boost目录下3.编译bjam (1)从vs2005的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visua l Stuio 2005”,指向"工具",然后单击“Visual Studio 2005 command prompt(命令提示)
2010-12-12 16:01:00
1107
1
原创 MSDN "无法显示该网页" 的问题解决方案
打开安装好的MSDN,显示无法显示网页.<br />如下:<br /> <br />regsvr32 "C:/Program Files/Common Files/Microsoft Shared/Help/hxds.dll"<br /> <br />在运行框里输入这条命令,注册一下就OK了。。
2010-11-14 20:18:00
442
原创 effective c++读书笔记二——构造/析构/赋值运算
4. 条款5:了解C++默默编写并调用哪些函数声明了一个构造函数,编译器将不再为它创建default构造函数。5. 条款6:若不想使用编译器自动生成的函数,就该明确拒绝如果你不希望某个class支持某一特定功能函数,比如不希望某个类具有copy构造函数和copy assigment函数,你不声明,但是编译器会为你默认生成,若你不需要对应的函数,请明确拒绝。l 将对应的函数声明为private,明确告诉编译器阻止生成对应的函数。l 比较常用的方法,采用继承机制,将父类对应的两个
2010-10-18 22:18:00
399
原创 effective C++阅读笔记一——让自己习惯C++
1. 条款2,尽量以const,enum,inline替换#defines(1)对于单纯常量,最好以const对象或enums替换#defines:使用常量可能比使用#define导致较小的量的码,因为预处理器“盲目地将宏名称替换为数字”可能导致目标码出现多份数字(2)对于宏形式的函数,改为inline。2. 条款3:尽可能使用const(1)constchar* p = greeting ; //常量指针,指向数据是常量char* constp = greeting ; //指针常量,指针
2010-10-18 22:11:00
503
原创 开博了
<br /> 从今天开始,我将在CSDN记录一下自己的工作和读书笔记。工作一年多,在工作中学了不少东西,但是没有经过及时总结,导致过了一段时间又忘记了,在脑中留下毕竟有限。
2010-10-16 16:00:00
279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人