自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

霧谷龍視-专栏

欲穷千里目,更上一层楼!(每天积累一点……)

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

转载 在框架类(CMainFrame)中包含视图类(CView)的头文件出错的解决之道

在MainFrame.cpp中 #include"MyView.h"会出错:error C2143: syntax error : missing ; before *error C2501: CISearchDoc : missing storage-class or type specifierserror C2501: GetDocument : missing stor

2011-06-11 21:45:00 4078 7

原创 VC启动画面

使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法,前三种适用于基于文档的应用程序,第四种适用于基于对话框的应用程序。 1.利用组件库中的Splash Screen组件实现   (1)用Photoshop等制作启动画面图像,保存为bmp格式。   (2)用Appwizar

2011-06-11 13:09:00 3272

转载 单件模式

单件模式(Singleton)的目标是在应用程序中创建一个唯一的对象。比较典型的例子就是Windows下的任务管理器。单件模式的类图比较简单,如下:下面实现一个多线程下的单件模式,代码如下://TaskManager.h#include "afxmt.h"class TaskManager  {public:    static TaskManager* Instence();private:

2011-06-03 11:34:00 644

转载 单件模式

单件模式(Singleton)的目标是在应用程序中创建一个唯一的对象。比较典型的例子就是Windows下的任务管理器。单件模式的类图比较简单,如下:下面实现一个多线程下的单件模式,代码如下://TaskManager.h#include "afxmt.h"class TaskManager  {public:    static TaskManager* Instence();private:

2011-06-03 11:33:00 529

转载 状态模式

状态模式的意图就是当一个对象的内部状态发生改变时也改变了它的行为!比如一个小孩,身体健康的时候,可以出去和小伙伴一起玩耍,一起去幼儿园,但生病的时候,只能在家休息,吃药等!同样是小孩的行为,当小孩的健康状态的不同,其行为的执行结果就发生变化了!把上面这个例子用程序实现时,就是小孩这个对象,在健康状态由健康到生病时,这个小孩的某个行为,比如说:自由活动(),则由出去和小伙伴玩耍,变成到躺在床上吃药休

2011-06-03 11:25:00 491

转载 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域

<br /><br />这是两个相关的程序,前者是后者的基础。实际上前一个程序也是在前面博文的基础上做的修改,请参考《在OpenCV中利用鼠标绘制直线》 。下面贴出代码。<br />程序之一,在OpenCV中利用鼠标绘制矩形<br /> view plaincopy to clipboardprint?#include <cv.h>  #include <highgui.h>  #include <stdio.h>  #pragma comment( lib, "cv.lib" )  #pragma com

2011-05-26 21:02:00 1447

转载 深入理解C++的动态绑定和静态绑定

<br />为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。<br />需要理解四个名词:<br />1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。<br />2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。<br />关于对象的静态类型和动态类型,看一个示例:<br />view plaincopy to clipboardprint?<br />01.class

2011-05-18 18:55:00 575

转载 粒子滤波-opencv的实现

OpenCV中实现了粒子滤波的代码,位置在c:/program files/opencv/cv/src/cvcondens.cpp文件,通过分析这个文件,可以知道库函数中如何实现粒子滤波过程的。首先是从手册上拷贝的粒子滤波跟踪器的数据结构:typedef struct CvConDensation{int MP; // 测量向量的维数: Dimension of measurement vectorint DP; // 状态向量的维数: Dimension of state vectorfloat* Dyn

2011-05-13 09:30:00 2711 1

转载 Ogre::Overlay之添加3D

<br />为什么向Overlay加入3D?  Oververlay一般是用来处理2D界面的,如GUI界面等。但有些时候,我们想做些特别的界面,比如左上角加入一个人物状态框,上面可以有人物动作,人物可以旋转观察等。 在我使用Overlay的过程中,我就发现一个问题(也不知道算不算问题):overlay在旋转的时候,大小会变化! 如下图所示:<br />旋转90度后就成了<br />不管是旋转overlay还是旋转纹理,旋转后实际大小都会变化,所以我在overlay中使用3D(旋转3D大小是不会变化的)来解决

2011-01-10 20:51:00 1452

原创 NxOgre中的TimeController初始化位置问题

<br />NxOgre中的TimeController初始化<br />例如<br />mTimerController = NxOgre::TimeController::getSingleton();//mTimerController是TimeController的对象<br />这句话要放在定义完world以后。

2010-12-30 20:55:00 450

转载 Ogre::MaterialPtr

<br />Ogre中的材质一般都是读取*.material尾缀的文件。<br /><br />1.首先使用Ogre::MaterialManager中的create方法创建一个材质,例如:        Ogre::MaterialPtr red<br />            = Ogre::MaterialManager::getSingleton().create("DebugLines/Disabled","DebugLines");<br />第一个参数为 材质名;<br />第二个参数为 资

2010-12-27 20:41:00 1595

转载 OGRE 使用技巧总结

OGRE 使用技巧总结1.所有需要挂在SceneNode上的user-object, 都需要从MovableObject来继承,比如一个最典型的应用是 3DSoundSource.<br /><br />2.Ogre中RenderQueue的相关标号,标号越小的其最先渲染。<br />Background - Queue 0<br />Skybox - Queue 20<br />World Geometry - Queue 30<br />MovableObjects - Queue 50<br />Ov

2010-12-27 12:08:00 567

转载 进度条的实现

<br />在ogre中有一个资源管理器ResourceGroupManager, 该资源管理器负责文件的加载,也负责文家的加载进度的通知.其文件加载的进度的实现如下:<br />1.ogre提供了一个叫ResourceGroupListener的监听器, 客户端需要继承该类,然后通过覆盖start()的虚拟函数进行一些初始化工作, 在start()中需要调用ResourceGroupManager::getSingleton().addResourceGroupListener(this); 来通知资源管

2010-12-27 12:01:00 564

原创 加载场景时,遇到的无法显示场景的问题。遇到问题一定要去看Ogre.log

<br />当在resource_d.cfg中定义的资源组为[General]<br />而在用DotSceneLoader的parseDotScene解析资源时,第三个参数要么不写,要么一定要和[General]一致,否则会出现无法解析<br />场景的情况。<br />另外遇到 问题一定要去看Ogre.log,也许那里面会有出错记录。

2010-12-25 21:38:00 3374

原创 手动加载和利用Resource_cfg加载出现了不同的效果。

Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../Media/Models/XX.zip","Zip","General"); Ogre::ResourceGroupManager::getSingleton().initialiseResourceGroup("General"); Ogre::ResourceGroupManager::getSingleton().loadResourceGrou

2010-12-23 21:48:00 918

转载 OGRE资源的四种状态

<br />未定义<br />    游戏程序启动时所有资源的默认状态,资源未被索引,所以OGRE不知道它们的存在。<br />已声明<br />    资源已被索引,OGRE已经知道这些资源的存在,但它们还没被初始化。<br />    (平时我们读取了资源配置文件之后,资源就进入了这种状态。)<br />未载入<br />    资源已被初始化——被初始化的资源都生成了一个分别对它们的引用(这些引用会占用小部分内存),但资源还没被载入到内存。<br />    p.s.:如果某个资源有一个脚本,则脚本也

2010-12-23 17:27:00 521

原创 一个错误,耽误了我两周时间

<br />CEGUI的问题,一个调用顺序问题,害了我弄了一两周。。。。郁闷。

2010-12-23 11:02:00 423

原创 初始化 CEGUI

mRenderer = &CEGUI::OgreRenderer::bootstrapSystem(); CEGUI::Imageset::setDefaultResourceGroup("Imagesets"); CEGUI::Font::setDefaultResourceGroup("Fonts"); CEGUI::Scheme::setDefaultResourceGroup("Schemes"); CEGUI::WidgetLookManager::setDefaultRes

2010-12-16 19:32:00 655

转载 画中画

<br />void BaseApplication::createCamera(void){ // 主窗口摄像机 mCamera_1 = mSceneMgr->createCamera("Cam_1"); mCamera_1->setPosition(Vector3(0,0,300)); mCamera_1->lookAt(Vector3(0,0,-300)); mCamera_1->setNearClipDistance(5); // 画中画摄像机 mCamera_2

2010-12-14 15:50:00 588

原创 鼠标的相对绝对坐标,以及Axis类

class _OISExport Axis : public Component { public: Axis() : Component(OIS_Axis), abs(0), rel(0), absOnly(false) {}; //! Absoulte and Relative value components int abs, rel; //! Indicates if this Axis only supports Absoulte (ie JoyStick)

2010-12-09 17:37:00 1787

原创 unsigned int 应用于 for 循环的注意事项

void main(void) { unsigned int b = 8; int a; for (a=-1;a

2010-12-08 21:20:00 753

转载 这些道理不懂,你注定就是穷打工的命

<br />(原文應該來自天涯,成形於2010/03,后經网友整理成此文,被各大网站紛紛轉載,分享共勉之)<br /><br /><br />        首先声明:如果你是“愤青”或“类愤青”,对不起,请放下此书,因为文中的观点可能会伤害你的心灵(不是对“愤青”有偏见,而是“愤青”们多数都是“纯洁”得不识人间烟火的主儿,成天充满“乌托邦”式的幻想,实在不适合在职场上发展。我相信“愤青”肯定有“愤”的理由。有人说历史上的每一次进步都是由“愤青们”推动的,比如屈原、鲁迅,并以此来反驳我。对于这种观点,我的看

2010-12-04 11:31:00 357

原创 srand() 函数

<br />表头文件<br />#include<stdlib.h><br /> 定义函数<br />void srand (unsigned int seed);//srand(设置随机数种子)     其 相关函数 rand <br /><br />函数说明<br />srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。<br /> 

2010-12-02 22:20:00 814

原创 switch case

<br />case 语句后面最好还是直接加大括号。例如下面是会出现错误的:<br /> case 2: int b=3; { cout<<2<<endl; break; } case 3: { cout <<3<<endl; break; }<br />会出现 b 的初始化操作由 "case” 标签跳过。

2010-12-02 20:23:00 384

转载 无论你的工资多少 请记住这些

<br />第一份,用来做生活费。        <br /><br />第二份,用来交朋友,扩大你的人际圈。<br />   你的电话费可以用掉100元。每个月可以请客两次,每次150元。请谁呢?记住,请比你有思想的人,比你更有钱的人,和你需要感激的人。 每个月,坚持请客,一年下来,你的朋友圈应该已经为你产生价值了,你的声望、影响力、附加价值正在提升,形象又好,又大方。<br /><br />第三份,用来学习,每个月可以有50元—100元用来买书。<br />     钱不多,买的书就要认真阅读,学会学了

2010-12-02 17:24:00 373

原创 .overlay

1,在引用.overlay文件中的定义的layout 或者 layoutElement的时候要注意大小写。

2010-12-02 11:24:00 668

原创 material 文件

<br />每一个material 与一个 图片相对应?

2010-12-02 09:22:00 808

原创 try catch

<br />#include<iostream>#include <string>using namespace std;class Person{private: int age; string name;public: void setAge(int); void setName(string);};class Error{public: virtual void show()=0;};class nameError:public

2010-11-30 19:52:00 434

原创 error C2661: “CEGUI::SubscriberSlot::SubscriberSlot”: 没有重载函数接受 2 个参数

<br />这个时候请检查消息处理函数HandleSomething<br />必须是bool而且必须要有const CEGUI::EventArgs& e作为参数.<br />bool HandleSomething (const CEGUI::EventAtgs& e);

2010-11-28 21:43:00 6065

原创 C++ 中的 mutable 关键字

<br />mutable 关键字是和 const 关键字相对的, 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。<br /><br />  我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。<br />据说有这种面试题:请在函数get_m中改变m的值<

2010-11-28 10:06:00 513

原创 CEGUI控件和响应函数的 联系机制

<br />定义一个控件<br />CEGUI::Window*quit = wmgr.createWindow("TaharezLook/Button","CEGUIDemo/QuitButton");<br /> <br />加载这个控件被点击,和点击处理函数的联系,消息处理函数为 bool Game::quit(const CEGUI::EventArgs&e)<br />quit->subscribeEvent(CEGUI::PushButton::EventClicked,CEGUI::Event

2010-11-21 19:54:00 677

原创 Ogre 游戏中初始化 CEGUI

1, 在类中添加 成员变量 CEGUI::OgreRenderer *mRenderer; 2,构造函数中初始化 mRenderer=0;3,在setup()函数里调用 initCEGUI();void Game::initCEGUI(){ mRenderer = &CEGUI::OgreRenderer::bootstrapSystem();}。

2010-11-21 19:42:00 702

原创 某个工具从以下位置返回了错误代码: "正在执行生成后事件

<br />直接在  项目属性  ->生成事件 ->生成后事件 ->命令行  中的内容删掉。

2010-11-20 11:41:00 1063

原创 开始游戏项目。。。

<br />从今天起开始写一个汽车的OGRE3D游戏项目。每天记录一些。省的自己坚持不下来。。。。

2010-11-19 15:44:00 416

转载 防止摄像机穿透地面

<br />基于射线查询的方式,实现摄像机和地形的碰撞检测,防止摄像机穿透地面,这也是ogre demo中Terrian例子中的方法。<br />首先定义 RaySceneQuery* raySceneQuery = 0;<br />在CreateScene时候,创建场景查询<br /><br /> frameRenderingQueued事件中,进行射线查询,设定摄像机位置<br />  raySceneQuery = mSceneMgr->createRayQuery(<br />           

2010-11-19 10:13:00 1224

文件夹的显示(强烈推荐)

入门练习强烈推荐,一个很好的练习代码,而且对以后的应用很有帮助。

2009-09-09

空空如也

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

TA关注的人

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