• 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

  • 相关阅读:
    ABP源码编译及部署
    nopCommerce源码本地部署、配置及语言包导入
    MongoDB查询转对象时出错 Element '_id' does not match any field or property of class
    找不到资产文件 project.assets.json
    Docker中运行.net core 验证码不显示
    css设置input不显示光标
    js中的==和===
    Navicat连接mysql(高级选项配置)
    js回调函数,检测这个值是否重复
    layer数据表格换行
  • 原文地址:https://www.cnblogs.com/littlethank/p/1782640.html
Copyright © 2020-2023  润新知