3D魔方游戏

由于最近一直在学习directx,为了不让自己感觉枯燥,于是应用自己所学,写了个魔方游戏,好了下面就给出几张图片

1

 2

 3

好了开始讲下我的游戏思路,首先得渲染出27个立方体,并且附上纹理,接着就是本游戏的核心,主要用到了鼠标拾取技术,通过鼠标的点击和移动来判断哪9个立方体实现旋转,如下是游戏的核心代码,由于代码较多我就只截一次上面9个立方体旋转的代码,其他都是雷同的,

4

 5

 6

7

接着就是代码的思路,首先通过鼠标拾取我们已经得到了鼠标的位置,如果是上面的话,鼠标的Y坐标对应的只就在1.0到3.0之间,这里我还用到了D3DXPlaneFromPoints()这个函数,主要是为整个大的立方体创建六个面,

当鼠标左右移动时,即可旋转魔方。(这里再讲一点由于魔方旋转导致矩阵也跟着旋转,为了方便,我就用了一个笨方法将矩阵还原了,就是最后一张照片里的矩阵的赋值)好了就讲到这里了。

最后讲一下本实例的缺点:

1:首先由于我是刚开始学的DX,对好多东西都不熟悉,c++也不是很好,所以很多程序都写的很简单,程序很长,呵呵

2:由于只是个Demo,很多功能没有实现,只是把我最近学的D3D知识巩固了下,我也没有深入完善。

3:如果有人运行这个程序会发现一个BUG,就是当你玩这个魔方是你的鼠标只能水平向一个方向移动,如果你手抖了一下,魔方就会乱套,这与我编写的代码有关,其实是与我的能力有关,我实在想不出怎么解决它,呵呵,另外该魔方只能往一个方向旋转,(其实可以解决,只是我闲代码太多,就没加),如果谁有兴趣可以改进。

4:由于是第一次写这么长的代码,所以程序有些地方写的不怎么好,尤其是主函数显得格外长,我没有把相同的代码用函数封装起来,我比较懒 呵呵;

总之如果你小心一点,本游戏还是可以玩的,里面的代码还是能够帮助那些想学DX的和我一样的初学者,至少我是这么过来的,

(忘了给出玩法,主要用到鼠标左键来旋转,ASDW控制摄像机,QE左右旋转,RF上下移动)最后附上完整代码

http://download.csdn.net/detail/beibiaoji/7456409

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值