摘要:
加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 1 private function load3DSFile():Loader3D2 {3 loader = new Loader3D();4 ... 阅读全文
摘要:
1 #ifndef _ZTC_DELEGATE_H_ 2 #define _ZTC_DELEGATE_H_ 3 4 #include 5 #include 6 7 /////////////////////////////////////////////// 8 // C++ 使用 可变参数模板类, 来实现 9 // C#中的 委托10 // Anchor: ztc11 // Date : 2014-01-1012 ///////////////////////////////////////////////13 14 template15 class Delegate {16 p... 阅读全文
摘要:
最近在研究 cocos2d-x 3.0 ,它在创建类的对象时比如 Layer 时, 并不是直接使用 new , 而是使用一个宏方法 CREATE_FUNC(MyLayer);. 这个宏就是自动的创建了一个 静态的 create 方法. 你可以使用 MyLayer::create(); 之所以这样做, 主要是使用了cocos2d-x 的引用计数式的垃圾回收机制. 这个机制是 Object-C 的 autorelease. 这样的方式很方便程序员, 不用再去自己去清理内存,不会造成内存泄漏. 而在 C++0X中 , 我就只能是使用 C++自己的一套机制了.. 可喜的是. 在 C++0x中 将 原. 阅读全文
摘要:
1 #ifndef _DRAGLABEL_H_ 2 #define _DRAGLABEL_H_ 3 4 #include "cocos2d.h" 5 USING_NS_CC; 6 7 class DragLabel : public Layer { 8 private: 9 Node* pickNode = NULL;10 Point delta;11 LabelTTF * lbl;12 public:13 /*得到 Scene 的静态方法,在AppDelegate类中需要使用*/14 static Scene* getScene() {15 ... 阅读全文
摘要:
1 #include 2 #include 3 using namespace std; 4 5 int main() { 6 // 摄像头 7 cv::VideoCapture vc(0); 8 9 // 人脸分类器10 const char* filename = "D:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt2.xml";11 cv::CascadeClassifier face_cascade;12 // 加载人脸分类器13 if... 阅读全文
摘要:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 /*10 知识点:11 this_thread : 当前线程12 chrono::system_clock::now() : 系统的当前时间点13 future async(std::launch::async,[](){...}) : 启动一个任务,返回的是一个 future 但一般直接 auto14 this_threa... 阅读全文
摘要:
Mutex : 锁同一时间只允许一个线程访问其代码内容拟人 : 就是一把锁而已,可以lockunlock, 谁都可以拿到锁,打开门进屋,但进去后,就会把门锁上(lock) 别人想进就得等他出来(unlock).Condition_variable : 条件变量 用来阻塞线程, 在收到信号 或 满足某条件 或 等待超过某设定的时间 时继续运行线程拟人 : 相当于 拿着锁 (用锁来初始化)的保安同志.. 他拿着锁,有权力控制门的打开与关闭,他是按着上级的 指示/时间/条件 才会打开大门的 1 #include 2 #include 3 #include 4 using namespace s... 阅读全文
摘要:
Unity C# 调用 C++ DLL 并在 DLL 中调用 C# 的回调函数~~~ 呵呵... 看着有点晕..再解释一下就是 在Unity中 使用 C# 调用 C++ 写的 DLL, 但是在这个 C++ 的 DLL 的某一个方法中,用到的 回调函数. 也就是需要 在 C# 中传入一个与 C++中签名相同的 方法的问题.一般在 C++ 中 使用 这种文件 创建一个函数的指针 : // 开辟内存空间的函数指针 (float *& 为float型指针的引用) typedef void (*AllocSpace)(int,int,int,float*&,float*&,int 阅读全文
摘要:
Lambda在C#中使用得非常频繁,并且可以使代码变得简洁,优雅.在C++11 中也加入了 Lambda. 它是这个样子的 [] () {}... 是的三种括号开会的节奏~ [] 的作用是表示Lambda的开始.并且告诉编译器.在这个表达式中要用哪种方式去访问同一作用域中的其它变量[=] : 表达以值传递的方式调用[&] : 表示以引用的方式调用[a,b,&c] : 表示a,b为值传, c为引用传递[=,&a] : 表示除了a为引用传,其它都为值传[&,a,b] : 表示为了a,b 为值传,其它都为引用传递[this] : 表示将类的this 指针传入了, 这样 阅读全文
摘要:
如果想在Unity3D中去播放视频文件,那么最方便的方法就是使用它自带的MovieTexture. 可以实现简单的视频播放功能. Play Pause Stop. 有也只有这三个功能, 如果你想要一个进度条,并且可以随意的拖拽视频的进度的话, 那就不能满足你的需求了. 所以想使用 DirectShow 这个视频开发包.来实现我们的想法. 这东西是基于COM组件的一套 C++ 开发库. 所以花了两天时间,各种Google. 把这个功能实现了, 在这里把流程记录一下,做为备忘. DirectShow 是由各种的 过虑器(Filter) 及 接口(Interface) 组成的. 处理过程就是 根.. 阅读全文