c++ - directx过程式编程

标签 c++ directx procedural

嗯,我正在学习 DX11,我希望有一天我可以开始一个简单的 3D 引擎。 我正在学习教程系列,我意识到我不需要创建任何类来维护我的代码(教程也使用这种过程方法,但我不复制粘贴教程代码,我尝试理解教程然后尝试以我的方式编写新东西),我可以让代码“不稳定”,只有函数和全局变量。所以我想知道,当我对 API 有足够的了解并且我想开始创建自己的库时,这种过程方法会不会有一些缺点?我应该开始写一些类(class)吗?

谢谢。

最佳答案

一开始我从一个小引擎开始,它只包含一堆程序。对于第一个应用程序,它起作用并且开发速度很快。但是应用程序变得越复杂,代码就越难读并且很难维护。然后我用面向对象的方法构建了同样的东西,几乎一切都变得更好了。程序的整体结构更简单,一些问题用 oop 解决得非常巧妙,例如碰撞检测。你有一个父类,例如CollidableObject,并派生出许多类,如 CollidableSphereCollidableCubeCollidableLine。对于碰撞测试,您只需要使用 CollidableObject 类,它实际上是哪个对象并不重要。用程序方法处理这并不是一件好事。还有许多其他示例,其中 oop 很有用,例如您可以使用许多不同类型的粒子(广告牌、顶点线、网格、灯光)为您的粒子系统建模,并且只需要实现一个给定的模式,就可以简单地一起工作。

总而言之,我建议尽快开始上课,但对于第一次有趣的黑客攻击和学习,程序化方法不是很好但很合适。

关于c++ - directx过程式编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003765/

相关文章:

C++ : Read random line from text file

graphics - 变换 Direct3D 网格

c++ - Nvidia optimus NvOptimusEnablement

Java 在一个方法中返回多个字符串

java - 打破 actionPerformed() 的程序风格

javascript - 使用 SDL2 (emscripten) 的未知类型名称 "SDL_RendererFlip"

c++ - 在 C++ 中定义虚继承的两种不同方式

c++ - 我是否能够确定在我部署了一个程序后发生了什么,我写了一个数组的末尾?

php - 从过程语句转换为 mysqli 准备语句

c++ - 任意大小的 DirectX9 纹理(非 2^n)