2004年8月13日星期五

开始学习 DirectX

从小就热衷游戏,想来最早的游戏机还是在我 4 岁的时候买的。长大了,热爱编程了,依然不减多少对游戏的喜爱。说实话,这就是我想学 DirectX 的目的,至少是最初目的。我从不为什么事而去做什么事,这次也绝不为了学 DirectX 而学 DirectX。

没有买书,就到网上找教程。下了 SDK,结果是 9.0b 的,9.0c 还没出,也凑合着用,反正也是 Managed DirectX。不过 9.0b SDK 的帮助中关于 DirectDraw 的部分并没有说 DirectDraw 已经被微软 Deprecated 了,所以就先在 http://www.thecodeproject.com/ 找到一篇从 DirectDraw 开始教的教程。自己照模照样写下来,嘿,还真能改变分辨率了,也能弄全屏了。接下来研究了一个晚上,做了一个用 Surface 重叠形成的动画效果,简陋,但还是挺兴奋的。

9.0c 的 SDK (Summer 2004) 出了。装上后才发现 DirectDraw Deprecated 的事,就改向 Direct3D,2D 能做的 3D 都能做。这一次的教程是 http://www.pluralsight.com/craig/articleview.aspx/DirectX/Direct3D 。和 SDK 自带的教程几乎一模一样,不过,SDK 带的好像少了一两条语句,而这个可以调通,解释也详细一些。花了 2 个下午,在圣桑小协的音乐中把 VertexBuffer 做的三角形画出来了。不错,继续努力吧。

其实我为什么要现在才开始学 DirectX 呢?并不是现在才感兴趣的,根本原因还是现在编程能力的提高和对 .NET 的逐渐熟悉。就像双簧管一样,很多事都得到了一个阶段后才能接触、感悟这一个阶段的东西,如果未到而又要强求,不但毫无作用,还可能适得其反,用金庸的话说,“走火入魔”。我们对事物的熟练程度是跳跃式的,不是平滑的。常常几年没有任何进步,但到了应该的时候,便会有极大的飞跃。我的经验告诉我应该是这样的,音乐是,编程是,英语也是。

万物终当以和为贵。

没有评论: