图形学大作业的源码。关于代码的一些说明:
项目采用Qt编写,预先要安装Qt,建议4.7 4.8左右的版本,不建议5以上版本。
几个类的作用
MainWindow 整个游戏窗口
GLArea 游戏中央黑色背景的画面,是MainWindow的成员。各种openGL相关的操作在这里完成。
Raider3d 游戏主对象,是GLArea的成员。维护各种游戏数据,包括敌人的网格模型,背景星云等等。
CMesh VCG网格
解决方案视图中Helper文件夹下的各种类不需要太了解
主要的编写工作在Raider3d进行。实际上,全部任务就是要实现以下函数:
1.画准星 Raider3d::drawCross()
2.移动准星 Raider3d::moveCross(CROSS_MOVE move)
3.画游戏背景星云 Raider3d::initStarfield()
Raider3d::drawStarfield()
Raider3d::moveStarfield()
4.判断玩家按下扳机后(空格键),当前的准星是否打中敌人
Raider3d::getHit()
Raider3d::world2View(Point3f& w)
5.实现敌人被击中后的爆炸效果(敌人模型网格的边随机散开)
Raider3d::computeEdgeList()
Raider3d::startExplosion(int hit_id)
Raider3d::drawExplosion()
阅读代码比较好的办法是从main函数开始进入,顺次看MainWindow、GLArea、Raider3d。
1