Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 2D DirectX 10游戏开发_C++_Directx_2d_Direct3d - Fatal编程技术网

C++ 2D DirectX 10游戏开发

C++ 2D DirectX 10游戏开发,c++,directx,2d,direct3d,C++,Directx,2d,Direct3d,我正在尝试使用DirectX 10创建2D游戏。我一直在思考如何真正开始创造这样一个东西,这方面有很多问题。我发现了一些混合的想法,比如只使用着色器和坚持使用Direct3D,我还见过一些人使用诸如SFML之类的库。我对DirectX相当陌生,我想知道我应该使用什么来创建2D游戏(着色器或库)。着色器是我应该研究的东西,还是我应该使用一个库?好吧,如果你对学习DirectX本身感兴趣,你应该尝试编写自己的2D引擎,有一点经验的2D引擎并不像看上去那么难。但是,如果你想直接进入游戏开发,你可以看看

我正在尝试使用DirectX 10创建2D游戏。我一直在思考如何真正开始创造这样一个东西,这方面有很多问题。我发现了一些混合的想法,比如只使用着色器和坚持使用Direct3D,我还见过一些人使用诸如SFML之类的库。我对DirectX相当陌生,我想知道我应该使用什么来创建2D游戏(着色器或库)。着色器是我应该研究的东西,还是我应该使用一个库?

好吧,如果你对学习DirectX本身感兴趣,你应该尝试编写自己的2D引擎,有一点经验的2D引擎并不像看上去那么难。但是,如果你想直接进入游戏开发,你可以看看一些引擎,照顾这一部分。着色器可以真正增强场景(3D和2D),如果我是你,我肯定会使用它们,而不仅仅是使用简单的未处理纹理。大多数引擎不会从您那里获取着色器编程,因此您可能无论如何都需要查看hlsl。 还有我在几个引擎和图书馆的经历:总有一天它们会结束,如果你对你的项目充满热情,你就不想忍受这些限制。这就是为什么我建议您编写自己的引擎,您可以根据需要轻松地进行扩展

纯DirectX的良好起点:
(主要针对3D,但也包括2D,您会注意到这并没有什么不同)

我正在考虑创建自己的引擎或库,但我不知道从哪里开始。。。。。有什么建议吗?我真的很喜欢rastertek。它基本上适用于3D,但也有一个2D教程,正如Aleks指出的,它基本上只是忽略z(设置为0)并在ortho.SFML中渲染是2D的一个不错选择。您可以使用OpenGL,因为它是基于OpenGL之上的。如果您使用DirectX,那么您只需忽略z轴,并在正交投影中正常处理其他所有内容。我确实建议您学习着色器,因为“固定函数”的旧方法正在被可编程管道所取代。我不确定您所说的“忽略z轴”是什么意思。根据我所做的实验,当你把一个原语渲染到屏幕上时,你必须声明一个x,y和z,我假设它也可以转移到精灵和纹理上。我怎么能忽略z轴呢?既然你想做2D图形,你只需将z设置为0。z轴唯一相关的时间是在旋转期间,因为您围绕z轴旋转。(假设你的z是你的深度)