自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

转载 关于自动寻路和游戏角色同步问题的具体设计

1.      对于这样一种情况:每一次服务器发送给b的关于它们的网络玩家A的角色的移动事件信息时,对于b而言,它们都不一定必须在接受到消息的当前帧执行客户端同步模拟的代码。这样设计的原因是因为两种原因:(1)      当网络延迟严重时,b所接收到的关于A’的移动事件消息可能已经过期(即不再是当前时间A’应该做出的处理,(从时间戳可以看出))这种时候我就应该从b客户端中的A’角色

2012-07-31 22:45:57 4131

原创 unity NGUI 创建Dlg流程

1.创建AtlasNGUI->Atlas Maker2.创建Dlg的prefabs假设取名为AAADlg,添加脚本,假设为UIAAADlg.cs  类继承NvUIDialogBase,脚本内处理该Dlg的下属控件的事件设置Layer为UI摄像机的层AAADlg添加子Obj,取名为Anchor,添加脚本Component->NGUI->UI->AnchorAnch

2012-08-17 17:30:46 437

转载 战斗系统

第1章 战斗系统概述1.1 战斗系统的定义,地位及其设计目标1.1.1 战斗系统的定义    战斗系统指的是游戏中的角色在游戏时空环境中的战斗过程1.1.2 战斗系统设计在游戏设计中的地位    游戏是一种体验过程,在这个体验过程中,战斗通常是游戏中最强的交互要素,它对玩家的感觉刺激也是最大的。因此战斗系统的设计通常是MMORPG中的重中之重,且在设计过程中处于核心地位,其

2012-08-07 17:09:13 2060

转载 被误解的C++——模板和宏

前些日子,论坛里大打口水仗的时候,有人提出这样一个论断:模板本质上是宏。于是,诸位高手为此好好辩论了一番。我原本也想加入论战,但是觉得众人的言论已经覆盖了我的想法,所以也就作罢了。尽管没有参与讨论,但“模板究竟和宏有什么关系”这个问题,始终在我的脑海中上下翻飞。每当我能够放松下来的时候,这个问题便悄悄地浮现。(通常都是哄儿子睡下,然后舒舒服服地冲个热水澡的时候)。我思索了半天,决定做些实际的代码,

2012-08-05 22:50:13 369

转载 设计模式—创建型模式—AbstactFactory 模式(抽象工厂模式)

本主题相关博文均转自《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》,作者:K_Eckel问题 假设我们要开发一款游戏,当然为了吸引更多的人玩,游戏难度不能太大(让大家都没有信心了,估计游戏也就没有前途了) ,但是也不能太简单(没有挑战性也不符合玩家的心理) 。于是我们就可以采用这样一种处理策略:为游戏设立等级,初级、中级、高级甚至有BT 级。假设也是过关的游戏,每个关

2012-08-02 21:37:21 392

原创 C/C++ 面试题/笔试题 (3)

找错题试题1:void test1(){    char string[10];    char* str1 ="0123456789";    strcpy( string,str1 );}试题2:void test2(){    char string[10],str1[10];    int i;    for(i=0;i

2012-08-01 11:09:36 809

原创 C/C++ 面试题/笔试题 (2)

1.求下面函数的返回值(微软){ int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999. 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是

2012-08-01 10:48:51 1267

原创 C/C++实现的二进制与十进制互转

int main( void ) { char buf[9]; /*输入的整数不超过8位*/ int num=0,sign=10; unsigned int i=0; while(1) { printf("请输入数字: "); gets(buf); for (i=0; i<strlen(buf); i++) { if ( !(buf[i]>='0

2012-07-31 22:21:31 664

原创 C/C++实现的智能结构体(SmartStruct)

SmartValue类:SmartValue.h中的代码#pragma once#include #include #include "string.h"#ifndef WIN32#define __int64 long long#endifclass CSmartValue{protected: char * m_pData; UINT m_Dat

2012-07-31 22:17:20 56

转载 设计模式—创建型模式—Factory 模式(工厂模式)

本主题相关博文均转自《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》,作者:K_Eckel问题  在面向对象系统设计中经常可以遇到以下的两类问题:  1)为了提高内聚(Cohesion)和松耦合(Coupling) ,我们经常会抽象出一些类的公共接口以形成抽象基类或者接口。 这样我们可以通过声明一个指向基类的指针来指向实际的子类实现,达到了多态的目的。这里很

2012-07-31 21:44:12 520

原创 C/C++实现的最基本的加解密函数代码

Crypt.h#pragma onceclass CCrypt{public: static BOOL Encrypt(BYTE* source,BYTE* destination,DWORD length); static BOOL Decrypt(BYTE* source,BYTE* destination,DWORD length);};Crypt.cpp#incl

2012-07-30 17:55:57 708

转载 Lua数组表的应用

–[[ lua表处理 ]]–alice = {}alice[ "name" ] = “liuhui”alice[ "phone" ] = “15157121639″alice[ "address" ] = “杭州江干”alice[ "city" ] = “杭州”print( alice["name"] )print( alice["city"] )print( alice.city

2012-07-30 17:38:03 631

转载 lua中的元表和元方法

元表概念:引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否定义了关于次操作的元方法。例如两个table相加,先检查两者之一是否有元表,之后检查是否有一个叫“_

2012-07-30 17:32:24 1521

转载 优化3D图形渲染通道负载

一般来说, 定位渲染通道瓶颈的方法就是改变渲染通道每个步骤的工作量, 如果吞吐量也改变了, 那个步骤就是瓶颈.。找到了瓶颈就要想办法消除瓶颈, 可以减少该步骤的工作量, 增加其他步骤的工作量。 一般在光栅化之前的瓶颈称作"transform bound", 三角形设置处理后的瓶颈称作"fill bound"定位瓶颈的办法:1.改变帧缓冲或者渲染目标(Render Target)

2012-07-30 17:29:12 374

转载 C/C++不定参数的函数实现方式

C/C++语言有一个不同于其它语言的特性,即其支持可变参数,典型的函数如printf、scanf等可以接受数量不定的参数。如: printf ( "I love you" ); printf ( "%d", a ); printf ( "%d,%d", a, b ); 第一、二、三个printf分别接受1、2、3个参数,让我们看看printf函数的原型: int p

2012-07-30 17:10:09 619

转载 C/C++ 常见误区

1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准       委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。2. C++/CLI 和 C# 是微软的,它们与C

2012-07-30 16:53:32 592

转载 堆与栈的基础知识

一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(s

2012-07-30 16:47:27 223

原创 C/C++简易分割字符串示例

此方法并不完美,仅供参考#include #include #include #include using namespace std;string CutText(string &text,size_t cutLimitlen){ string retStr = ""; int retStrSize = 0; if(text.size() <= cutLimitle

2012-07-30 16:31:24 563

转载 VC++模拟键盘输入的一些资料

方法1: HWND hwnd=::FindWindow(0,"文档1"); //假设你要找的窗口标题为“文档1” CWnd::FromHandle(hwnd)->SetForegroundWindow(); ::PostMessage(hwnd,WM_KEYDOWN, VK_ESCAPE, 0L); //发送ESC按下的键盘消息方法2:这里以向记事本程序发送Ctrl+s

2012-07-30 16:14:44 283

转载 C/C++获得系统时间具体实现代码解析

C++获得系统时间的实现方法有很多种,我们在这里为大家列出了4种解决方案,供大家在使用的过程中参考选择。C++获得系统时间方案— 优点:仅使用C标准库;缺点:只能精确到秒级#include #include int main( void ){ time_t t = time(0); char tmp[64]; strftime( tmp, sizeo

2012-07-30 16:05:04 948

转载 win32程序响应拖拽消息

主要分3步:1.#include ,需要处理的API在Shellapi.h中。2.在窗口建好后使用DragAcceptFiles(hWnd,TRUE)打开窗口支持拖拽功能,也可以设置窗口的支持拖拽属性。3.在回调中处理:case WM_DROPFILES: { HDROP hDrop = (HDROP) wParam; int count=Dra

2012-07-30 14:27:30 467

转载 给应用程序加装“看门狗”

相信大多数的程序员或用户,在Windows中见到类似于下面的亲切而又温馨的提示信息,都不会感到陌生:“XXX执行了非法操作,将被关闭。要终止程序,请单击;要调试程序,请单击。”或者,“是否向Microsoft发送错误报告?,。”如果这个程序运行在无人值守、需要保持连续工作状态的场合,而其中的bug又一时难以排除,就需要采取应急措施,消除或减少程序出错造成的影响。本文讨论解决这个问题

2012-07-30 14:24:05 302

转载 C/C++ 面试题/笔试题 (1)

1. char * const p;char const * pconst char *p上述三个有什么区别?char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p; //和char const *p——————————————————

2012-07-30 14:16:44 720

转载 字符串与整数、浮点数、无符号整数之间的转换常用函数

atof(将字符串转换成浮点型数)表头文件 #include 定义函数 double atof(const char *nptr);函数说明atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结 束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或

2012-07-30 14:07:58 218

转载 常用C语言标准库函数

1、调试相关的宏_FILE_:用来代表当前源代码的文件名(字符串表示)_LINE_:代表当前源代码中行号(正整数表示)_func_:代表当前所在函数的函数名_DATE_:代表编译时进行预处理的日期,格式为“MMM DD YYYY “_TIME_:代表编译源文件的当前时间,格式为“hh:mm:ss”2、主要提供两类重要的函数:字符测试函数和字符

2012-07-30 13:51:30 711

原创 C/C++监测代码运行时间

代码只是演示下基本原理,未封装。#include #include int main(){ DWORD m_lFreg; LARGE_INTEGER timeFreq; QueryPerformanceFrequency(&timeFreq); m_lFreg = timeFreq.LowPart; LARGE_INTEGER timeCount; QueryPer

2012-07-30 13:32:17 594

转载 关于拷贝构造函数和赋值运算符

重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。以下讨论中将用到的例子:class CExample{public: CExample() { pBuffer=NULL; nSize=0; } ~CExample() { delete pBuffer; } void Init(int n) { pBuffer=

2012-07-30 12:56:06 133

原创 C/C++实现的生成日志的一个简易方法

Log.h中的代码:#pragma once#define MAX_BUFFER_LENGTH 1024class CLog{public: static BOOL WriteLog(LPTSTR data, ...) { SYSTEMTIME SystemTime; TCHAR CurrentDate[32] = {0,}; TCHAR CurrentFil

2012-07-30 11:05:16 681

原创 C/C++ 根据不同复杂度生成随机数 (关键字:Random、Rand、seed)

Random.h中的代码:#pragma onceclass CRandom{public: CRandom(VOID); virtual ~CRandom(VOID);public: BOOL Init(UINT seed); INT Rand(VOID); INT SimpleRandom(VOID); INT ComplexRandom(VOID);private

2012-07-30 10:47:57 842

原创 C/C++实现简易循环队列

这只是一段简单的实现代码,并不完善且未经严格测试,只作为学习参考。#define MAX_QUEUE_LENGTH 100template class CCircularQueue{public: CCircularQueue(VOID) { ZeroMemory(mQueue,sizeof(mQueue)); mQueueHead = mQueueTail =

2012-07-30 10:25:17 560

原创 C/C++实现单线链表及基本操作

class CMyList{public: CMyList(void); //向链表中加入一个元素 void Add(int); //从链表中移除一个元素 void Remove(int); //在链表中查找一个元素 int Find(int); //打印链表中的所有元素 void PrintList(); //向链表中插入一个元素 void insert(int,int

2012-07-29 21:39:23 675

原创 atoi、itoa、strcpy、strcmp函数的C/C++代码实现

int my_atoi(const char* p){ assert(p != NULL); bool b_flag = false; int n_res = 0; if(p[0] == '+' || p[0] == '-') { b_flag = (*p++ != '+'); } while(isdigit(*p)) { n_res = n_res*10 + (*

2012-07-29 21:30:06 494

vuforia-unity-6-1-17

高通Vuforia就为我们提供了一款功能较为完备的AR插件,Vuforia SDK是一套相对比较完整的可以直接调用的AR API,并且相比较其他的AR SDK来说,它对图像的识别更加稳定。

2017-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除