想学习写2d游戏

CSh*_*ner 8 c# c++ directx xna 2d

嘿stackoverflow社区!我学习了C#的基础知识(我可以编写一些Form-Applications),现在我想学习如何编写2D游戏.我不知道从哪里开始.是否有适合2D游戏的引擎?在学习了2d的基础之后,我想写一些在windows和linux下工作的简单游戏(那应该很酷,linux :)).

我问过一个正在编程的朋友,他说我应该在X#中使用XNA(但这只适用于Windows).谷歌之后我发现使用C++的OpenGL最适合为linux编写游戏,因为没有DirectX/XNA.我还没有使用过C++,这需要一些时间来学习.

有什么可以暗示的吗?也许是其他引擎?我刚刚安装了XNA并看了一下演示游戏(Platformer),该代码并不难.XNA适合2D游戏吗?

jal*_*alf 19

一步一步.当您开始时,您不需要您的代码在每个平台上工作.它是否使用OpenGL或DirectX并不重要,因为您将完全创建一个游戏,在一个平台上运行一个图形API.

其次,不要过于担心"引擎".你不需要引擎来制作游戏,而且通常情况下它会比它的价值更麻烦.对"引擎"的整体痴迷从根本上讲是一个坏主意.如果你试图让一个软件组件支持游戏所需的所有功能,那么它就不值得用于任何一个游戏.

所有你需要的是:

  • 您熟悉的编程语言.听起来这是C#,所以坚持下去.
  • 某种方式将图形放在屏幕上..NET库可以在某种程度上做到这一点,但一些更高级别的库可能会使它更容易.您可以使用XNA或SlimDX或其他Direct3D包装器.或者你可以给SDL.NET一个机会.或者你可以自己写.您将需要的功能非常基本,每个图形库(2D或3d)都可以让您实现.

你尤其不需要任何"适合2D游戏"的东西.XNA能够将图形放在屏幕上,因此它可以满足您的需求.如果您也了解使用它所需的代码,那么XNA就足够了.不要试图找到"最好的",或者"2D游戏真棒"作为卖点的东西.

  • 原则上,是的.假设您保持在Mono支持的.NET位之内.当然,图形代码可能非常易变.您可能不得不花费相当多的时间来调试它,因为它在Linux上神秘地呈现的不同于Windows.但是让我再问一遍,*为什么你需要这个,你的第一个游戏是跨平台的?*你是否也将你在一年级阅读的所有内容翻译成西班牙语,俄语和中文? (5认同)
  • 好吧,我的观点是,跨平台并不重要*.Tao比其他特定于平台的框架更容易使用吗?如果是,那么*那就是他应该使用它的原因.如果没有,那么无论它运行多少平台,他都不应该使用它. (2认同)