zoukankan      html  css  js  c++  java
  • 3D制作魔方

    从10号开始做这个东西,是一边学习一边做的,学了DXUT框架、拾取技术(DX提供的、别人写的算法和用外接球模拟)

    先说一下还要改进的地方:

    1、无论先点哪一个方块,都按照程序设定的去转

    2、光照问题:转了之后变暗

    3、内存泄露(这个找了很久都没找到,我估计是DXUT框架的,汗)

    设计思路:

    1、渲染:设定27个世界矩阵,逐个渲染,用一个mesh,改变世界矩阵

    2、拾取:采用内接球,用外接球的话会有相交的部分,但内接球无法判断一些区域

    3、旋转:严格符合十字架的点击才能旋转

                保存世界矩阵的一个副本,到旋转完90°的时候,用副本乘上90°的矩阵可以避免不完全旋转90°

                坐标改变是用DX提供的函数D3DXVec3TransformCoord()

    4、用3DS MAX做模型时把box的中心移动原点,方便操作

    技术上遇到的但还没掌握的技术:

    1、没有看DXUT提供的camera类。DXUT有3个camera类

    2、还没有找到DXUT框架中是在哪里初始化一个IDirect3DDevice9的指针的

    3、没有理解回调函数

    以后准备添加的功能: 

    1、可以后退,就是退回上一步,这个用链式栈解决

    2、随机弄乱魔方,让玩家做回原状 ,这个也是用链式栈,魔方的操作有18种,随机产生其中一种,然后添加到栈顶,这个可以利用第一种功能

    3、提示功能。这个功能可以用来当做视频教学,一个一个出栈就行了 

    4、记录时间,这个简单

    5、添加局域网对战(世荣说过,现在只是想一下,还没学过网络) 

    6、某女生玩家提出可以自选6中颜色 

    文件下载:Magic_Cube.rar

  • 相关阅读:
    2017-2018-2 20179202《网络攻防技术》第一周作业
    《构建之法(第三版)》第四章
    《深入理解计算机系统(第三版)》第四章
    《文献管理与信息分析》第三章
    我们不一样
    linux centOS 7安装mysql 5.7.24
    centOS 8 使用dnf安装Docker
    centOS7服务器/dev/vda1空间100%,没有可用空间
    深刻理解 Docker 镜像大小
    使用linux docker环境打包Springboot jar包为docker镜像
  • 原文地址:https://www.cnblogs.com/littlethank/p/1782640.html
Copyright © 2011-2022 走看看