3D作品 3D小飞机游戏
学DirectX9.0好长一段时间。没有能做一个像样的东西。心里感觉就像没有过它一样。毕竟没什么证明我学过了。于以后的学习以后的就业都会有一定的促进作用。
记得大一时玩过一个3D的单机飞机。于是,就想试一下自己能不能写一个简单的。也好总结一下自己所学的DirectX9.0。于是开始找资料做准备。(哎,好像3D的图像资源好难找……,只能用别人的了)。
……
所用的环境: VS2005 + DirectX 9.0(音效引擎用的是Dietct X7.0)
项目的总体结构:
Mygame12的文件夹下有三个子文件夹:GameEngine,Resources,Sound.。
GameEngine: 一个简单的游戏引擎。其实我也不知道它算不算引擎。因为我知道的OGRE引擎是好庞大。而我之于她像茫茫苍海中之一粟,浩荡星空中之一小星,可能还是不能发光的那一颗呢。
里面的文件有好下:
有粒子系统、光照、材质、天空盒子、摄像机、面板、地形等。大多是看了《DietctX 9.0 3D 游戏开发编程基础》这本书后敲打出来代码的。而很别扭的事的是:t3dlib.h.t3dlib.cpp这两个音控制的是从《window游戏编程开发大师技巧》这的事的库来的。是DiretcX70.。因为我不知道DietctX 9.0 3D怎么控制声音的。
感觉真的很别扭。当然还有几个文件也是直接拷贝别人的代码。
第二个文件是:Resources内容如下:
资源文件主要是包含3D相关的图像资源。有高位图、X文件和其它的。
第三个是Sound. 如下:
其实也是资源。不过没和上面的分来放了。
接下来的是这个两个很重要的文件了:Driver.cpp和Driver.h。
这两个文件调用了其它几乎所有的类。程序的主函数和消息控制也在里面。
但是感觉是我写得最难看的一个文件了。感觉很乱。600多行的代没什么条理。码让由此,我应该好好去理解面向对象设计思想和设计模式了。
Hero.cpp和Hero.h是游戏主角。是你控制的英雄。而其他的Enemy.cpp和Enemy.h、EnemyModel.cpp和EnemyModel.h是你要消灭的敌人。Explode.h、Explode.cpp 从粒子类继承下来的爆炸类。particleGun.h.particleGun.cpp从粒子类继承下来的子弹类。Snow.h和Snow.cpp从粒子类继承的雪花类。
最后一个是雾化效果:SceneFog.h和SceneFog.cpp。
--end