摘要: 题目有点大,但是确实就是观察者模式。游戏中经常遇到几个层之间互相通信的问题。比如,当前页是游戏页,游戏结束的时候,直接显示结算页,不进行转场了,结算页上又有按钮。这时如果要响应按钮点击事件处理一些数据之类的,需要包含别的头文件。这样不太好。像上边这种类似的问题,就可以使用观察者模式。1. 在需要发送消息的地方(比如点击下一关按钮的回调函数),post消息即可,post有两种类型,带数据和不带数据:1 void postNotification(const char *name);2 void postNotification(const char *name, CCObject... 阅读全文
posted @ 2013-01-15 11:33 行者无疆!! 阅读(6072) 评论(1) 推荐(2) 编辑
摘要: C++中异常处理的语法。 关键字:1、 try 2、 catch 3、 throw 其中关键字try表示定义一个受到监控、受到保护的程序代码块;关键字catch与try遥相呼应,定义当try block(受监控的程序块)出现异常时,错误处理的程序模块处理异常,并且每个catch block都带一个参数(类似于函数定义时的数那样),这个参数的数据类型用于异常对象的数据类型进行匹配;而throw则是检测到一个异常错误发生后向外抛出一个异常事件,通知对应的catch程序块执行对应的错误处理。1、还是给一个例子吧!如下: 1 int main() 2 { 3 cout << "I 阅读全文
posted @ 2013-01-14 21:33 行者无疆!! 阅读(877) 评论(0) 推荐(0) 编辑
摘要: 以动手实践为荣,以只看不练为耻;以打印日志为荣,以单步跟踪为耻;以空格缩进为荣,以制表缩进为耻;以单元测试为荣,以人工测试为耻;以模块复用为荣,以复制粘贴为耻;以多态应用为荣,以分支判断为耻;以干净利索为荣,以冗余拖沓为耻;以总结分项为荣,以跪求其解为耻; 阅读全文
posted @ 2013-01-10 09:50 行者无疆!! 阅读(168) 评论(0) 推荐(0) 编辑
摘要: CCCallFuncND默认只能传一个参数,当需要用到多个参数怎么办类?1.把参数定义为全局变量,这样就不需要传递了2.定义为类的成员变量3.放在一个结构体里面4.通过移位,放到一个变量里面 假如int a,int b 其中a b 都小于255 int c = (a << 8) + b 就把a 和 b放在一起了 取a: c >> 8; 取b: c & 0xff; 阅读全文
posted @ 2013-01-08 15:29 行者无疆!! 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 可以用strtok1 char * strtok ( char * str, const char * delimiters ); // 函数原型 1 /* strtok example */ 2 #include <stdio.h> 3 #include <string.h> 4 5 int main () 6 { 7 char str[] ="- This, a sample string."; 8 char * pch; 9 printf ("Splitting string \"%s\" into tokens: 阅读全文
posted @ 2013-01-05 21:21 行者无疆!! 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 包含头文件fstream,文件已经存在。 1 #include <iostream> 2 #include <fstream> 3 #include <string> 4 using namespace std; 5 6 int main() { 7 string str; 8 // size_t filesize; 9 10 ifstream file("test.txt", ios::in | ios::ate);11 // filesize = file.tellg();12 13 // str.reserve(filesize); 阅读全文
posted @ 2013-01-05 15:39 行者无疆!! 阅读(377) 评论(0) 推荐(0) 编辑
摘要: The most popular CCNodes are:CCScene,CCLayer,CCSprite,CCMenu.m_bIgnoreAnchorPointForPosition这个值在node中被初始化为false,也就是不忽略(就要考虑)锚点,也就是说在你设置位置的时候必须考虑锚点。下面这个链接是关于锚点忽略锚点的比较详细的说明:http://blog.csdn.net/wayne5ning/article/details/8160506************************************************************************** 阅读全文
posted @ 2013-01-04 21:04 行者无疆!! 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 所有类的基类所有的selector:所有的selectortypedef void (CCObject::*SEL_SCHEDULE)(float);typedef void (CCObject::*SEL_CallFunc)();typedef void (CCObject::*SEL_CallFuncN)(CCNode*);typedef void (CCObject::*SEL_CallFuncND)(CCNode*, void*);typedef void (CCObject::*SEL_CallFuncO)(CCObject*);typedef void (CCObject::*SE 阅读全文
posted @ 2013-01-04 18:13 行者无疆!! 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 在cocos2d-x中它是一个宏1 #if defined(_USRDLL)2 #define CC_DLL __declspec(dllexport)3 #else /* use a DLL library */4 #define CC_DLL __declspec(dllimport)5 #endif所以其用于声明导入导出函数__declspec(dllexport) 声明一个导出函数,一般用于dll中__declspec(dllimport) 声明一个导入函数,一般用于使用某个dll的exe中关于__declspec(dllexport) ... 阅读全文
posted @ 2013-01-04 16:32 行者无疆!! 阅读(4412) 评论(0) 推荐(0) 编辑
摘要: 知识补充: sqlite3.dll动态链接库,它允许程序共享执行特殊任务所必需的代码和其他资源。 动态的sqlite3.lib相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,其生成的sqlite3.exe在运行时需要相应的dll文件支持 。 静态的sqlite3.lib将导出声明和实现都放在lib中。编译后所有代码都嵌入到宿主程序,其生成的sqlite3.exe可直接运行。任务: 一.使用VS2010编译sqlite3,生成动态的sqlite3.lib和sqlite3.dll(sqlite... 阅读全文
posted @ 2012-11-30 19:28 行者无疆!! 阅读(12638) 评论(5) 推荐(4) 编辑