2009年5月4日星期一

singleton设计模式

先看一个最简单的Singleton

class Singleton1
{
public:
Singleton1& Instance()
{
static Singleton Obj;
return Obj;

private:
Singleton1();
}
}
优雅的解决了问题。

再看一个可扩展的。


#include
#include
class SingletonBase
{
public:
SingletonBase() { cout << "SingletonBase created!" << endl; }

virtual ~SingletonBase() { cout << "SingletonBase destroyed!" << endl; }

virtual void Access() { cout << "SingletonBase accessed!" << endl; }

static SingletonBase* GetObj() { return m_pObj; }

static void SetObj(SingletonBase* pObj) { m_pObj = pObj; }

protected:
static SingletonBase* m_pObj;

};

SingletonBase* SingletonBase::m_pObj;

inline SingletonBase* Base()
{
assert(SingletonBase::GetObj());
return SingletonBase::GetObj();
}
// Create a derived singleton-type class
class SingletonDerived : public SingletonBase
{
public:
SingletonDerived()
{ cout << "SingletonDerived created!" << endl; }

virtual ~SingletonDerived()
{ cout << "SingletonDerived destroyed" << endl; }

virtual void Access()
{ cout << "SingletonDerived accessed!" << endl; }

protected:

};

inline SingletonDerived* Derived()
{
assert(SingletonDerived::GetObj());
return (SingletonDerived*)SingletonDerived::GetObj();
}
// Using the code...
// The complex singleton requires more work to use, but is
// more flexible. It also allows more control over object
// creation, which is sometimes desirable.

SingletonDerived::SetObj(new SingletonDerived);

// Notice that the functionality has been overridden by the new
// class, even though accessing it through the original method.

Base()->Access();
Derived()->Access();

// This variation on a singleton unfortunately requires both
// explicit creation and deletion.

delete SingletonDerived::GetObj();

一个可扩展的singleton。
主要用于需要大量访问的全局对象。

2009年5月3日星期日

吐血中 CEGUI

搞了半天 CEGUI初始化。

刚开始一个库找不到,在目录里翻了半天,搞定。

后来运行link,找不到d3dx9_40.dll,在system32目录下差了下,dx版本才到37,更新了下dx。

现在好了,出了个未知错误,new CEGUI::System(myRenderer);一旦new,马上弹出windows 警告框,头大。

搞了半天初始化不了,郁闷啊.......

这个GUI还真是复杂

DirectX 创建设备


好久都没碰DX了,今天将创建设备的代码重新敲了一遍,还是那么麻烦。。。


主要是想学习啊CEGUI。


游戏引擎阿,游戏引擎。


还是截图吧。

初识QT

QT,强大的c++UI设计库,我很后悔为什么不早点知道QT,也不用痛苦的学习MFC了。



跨平台的库。简单的几句代码就可以创建窗口,window有点类似c#的form。



刚开始学。Qslider,QSpinBox.



发图了。

2009年4月26日星期日

该安静一会了

该安静一会了。
就这样,如题.
五一之前,完成MFC,数据库,算是爆发的开始。

2009年4月21日星期二

又是一次反思

在这个不为人知的世界里,我又要进行一次反思了。

微软俱乐部蒋勇团队获得了微软精英大挑战第一名,在这里先祝贺祝贺。反正他们也看不到。

我最近有了女朋友,感觉很快乐。

但这并不能使我浮躁,确实,我这几天确实浮躁了一些。

看到他们的成就,我并不会很急,急功近利反而会事半功倍,我不急,我会稳稳的使自己的技术提高上去,总会有华丽爆发的一天。

成功的唯一路线,便是心静志坚,目标明确,抓紧每分每秒。小鱼,朋友,你们要相信我。

我从不给自己定无法实现,超出能力的目标。所以我一旦定了目标,便一定会将它实现,在我能力范围我为什么不实现。

低调,低调......我缓步前进。。

不能太浮躁。。。

抓紧每一秒。。。最后,要吃早点

2009年4月20日星期一

辩论赛计时器发布







前几天 抽空做了个辩论赛计时器,校辩论队用得。

周日亲眼看到自己写的代码运行在多人面前,感觉很不一般。
代码量:3000

其中代码冗余的地方很多。而且运行的时候还出了点小bug.

不碍事,今天完美无bug版本终于做好了。

还是发几张图吧,下周是决赛,就等看了。






2009年4月13日星期一

又要考试了

软件工程导论,第八周就考试,真是的。。。

最近专业课又多,要学的东西又多,晚上宿舍里3个宿舍连DOTA,我也只有看的份.

心情总是那么平静,感觉自己有点心理疾病。总是想成为一个疯子。。。。我已经确认了自己心里有毛病。所有事情都是平淡的看待,有点感觉没有锐气的感觉,心境进化到这种地步了?这和疯子有点矛盾啊。。。。。

还是做一个神好一些,我想自己差不多具备了这个条件了。。。其实我只是一个狂热的只是份子

又去ORGE的官网看了下,看到了SpeedTree阿,那个效果,看的我心里痒痒的.......



我果然有点问题。。。