C++ directx程序设计

C++ directx程序设计,c++,directx,procedural,C++,Directx,Procedural,我正在学习DX11,我希望有一天我能启动一个简单的3D引擎。 我正在关注教程系列,我意识到我不需要创建任何类来保存我的代码(教程也使用这种过程方法,但我不复制粘贴教程代码,我尝试理解教程,然后尝试以我的方式编写新代码),我可以用函数和全局变量“理解”代码。所以我想知道,当我对API有了足够的知识,并且我想开始创建自己的库时,这种过程性方法会有一些缺点吗?我应该开始写一些课程吗 谢谢。一开始我用了一个小引擎,它只包括一系列程序。对于第一个应用程序,它工作正常,开发速度很快。但是,应用程序越复杂,代

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


谢谢。

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


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

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


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

此外,如果有人能给我举个例子,说明游戏引擎的哪些方面应该用POO方法编码,这对我来说也很重要,如果有人能给我一个例子,说明游戏引擎的哪些方面应该用POO方法编码,这对我来说是很重要的