Direct3D 实现一个汽车小游戏

github:https://github.com/viktorika/a-car-game-written-in-direct3d

这个是我花了几天入门看了Direct3D的官方教程和另外一本<Dx11游戏编程入门>后做的一个简单的项目,为了加深我对direct3D的认识。

因为只是入门,所以用的接口基本都是windows sdk的dx12接口,只有加载贴图的时候被微软文档告知已经移除出来作为第三方库使用了,无奈之下只好去github搜了DirectTK库,把头文件和lib文件都放进了windows sdk中,一劳永逸。

绘制的模型

游戏场景中只绘制了3个模型,天空盒,地砖,汽车。一切从简,如果要加入复杂的模型然后自己画的话会很复杂,所以这里就只画了三个模型

天空盒

天空盒绘制了一个正方体结构,然后在里面贴图跟着视角走就ok了,很简单。

地砖

先做个正方形模型,然后通过循环构造出在世界空间中的顶点,把它存到顶点缓存就好了,然后就渲染,也很简单。

汽车

这个就稍微复杂一点,不过模型上用的是长方体+4个圆柱,比较简单的模型,毕竟只用三角形构造,弄得太复杂也没什么用。不如把精力花在汽车运动协调上。这里需要记录汽车的中心点,当前汽车的正方向和前后轮的旋转角这些信息,才能够比较正确地展示每一帧汽车的运动轨迹,每一帧有关的运动的计算都通过一个类Motion来处理,设定汽车运动时是匀速,如果是变速运动比较麻烦,不过也不是不能做,本来公式我都想好了,结果隔天做这个的时候想了下弄匀速就好了,不搞那么麻烦。

照相机

有两个相机,一个用于第一人称视角,另一个用于第三人称视角,第一人称视角是固定的,所需要的参数通过Motion处理后传递给它,第三人称视角的参数也是如此,另外可以通过鼠标控制第三人称视角的方向。

 

整个项目都比较容易,没涉及什么复杂的算法,有兴趣的可以看看,详细文档也写在github上了。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值