【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

学习了这么多三维的知识,是时候做一个三维游戏了。

可是由于时间关系,只做了一个Demo,以后有时间的话会继续完善的。

一些代码实现思想与大部分素材取自 UltramanGaia520

传送门:游戏

首先看下运行效果吧。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

运行环境:vs2010

此游戏为战略竞技游戏示例,胜利条件为玩家推掉敌人的防御塔,失败条件为敌人推掉玩家的防御塔。

玩家可以控制自己的英雄(战士、法师)与AI英雄进行战斗,并且可以升级增加属性等。

游戏玩法:

主界面:点击单人游戏进入游戏,点击退出游戏则结束游戏。

开始界面:鼠标选择对战的英雄,点击开始游戏进入游戏,按下Esc退到主界面。

游戏界面:玩家A键左转向,D键右转向,W键前进,J键攻击,Esc键回到主界面。

结束界面:鼠标点击返回主界面回到主界面。按下Esc退到主界面。

主要使用技术的实现方式和对应的代码:

天空盒:使用了顶点缓存的方式绘制一个正方体,然后再5个面都贴上纹理贴图,然后最终看起来就有了天空的效果。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

地形:从高度图中读取每个顶点的高度信息,然后创建出相应的顶点缓存,计算出相应的顶点位置和索引缓存,然后再进行纹理映射,贴上贴图,最后渲染。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

骨骼动画:

利用微软自带的骨骼动画类,进行二次封装,然后通过提供的全局函数与结构体,进行骨骼动画的导入与骨骼动画实例类的创建,最后通过实例类的创建进行绘制动画。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

火球粒子系统:通过创建火球的结构体,顶点缓存,然后载入纹理的方法来完成。使用链表来存储火球粒子。然后更新粒子的位置,寿命,最后将其渲染出来。粒子死亡后从链表中删除之。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

相机跟随:

设置相机位置为玩家的位置加偏移量,然后相机观察点为玩家位置。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

血条:

创建顶点缓存,计算顶点位置,进行纹理映射,然后使用公告板技术设置公告板矩阵,最后将血条渲染出来。

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

【游戏程序设计】三维游戏示例-战术竞技游戏Demo(一)

因为源代码太多了,在下一篇文章中详细讲解吧。