c# - XNA、DirectX 和 Monogame、SharpDX 之间的区别

标签 c# monogame sharpdx

<分区>

我学习 C# 有一段时间了。我基本上来自非开发背景(意味着我不知道不同编程工具的实际工作原理)。我刚开始学习 Monogame,但有些事情让我感到困惑。

首先它说 Monogame 是 XNA 的开源实现。这是什么意思? - 它使 XNA 开源 - 或者采用 XNA 的特性并自己实现它,但具有与 XNA 相同的函数名称等 -任何其他

它是否被允许且合法?如果是,我可以复制任何应用程序商店中的任何应用程序并制作我自己的版本吗?它需要有什么不同才能合法?

其次,当我安装Monogame时,SharpDX也被安装了。当我搜索它时,我发现 SharpDX 是托管的 DirectX(我从未在 DirectX 中工作过)。 Monogame 和 SharpDX(或 XNA 和 DirectX)之间有什么联系,我不能单独使用 monogame 或 SharpDX?托管 DirectX 是什么意思?

第三,除了Xamarin提供的之外,还有更多的跨平台C#框架吗?我找不到更多。

最佳答案

What does it mean?

Monogame 是 XNA 的另一种实现(相同的接口(interface),不同的基础)

And is it allowed and legal?

我不知道 XNA 的术语,但通常 Microsoft 允许重复这种类型(请参阅原始的 Mono)。如果您对此有顾虑,可以研究 XNA 的许可证。

Can I copy any app in any app store and make my own version? What needs to be different for it to be legal?

我不是律师(尤其不是版权律师),有几件事可以引导您朝着正确的方向前进,主要归结为复制想法很好,复制任何具体内容都不是。

  • 制作三消游戏 - 好的
  • 使用 Candy Crunch 中的图片 - 不行
  • 反编译愤怒的小鸟并直接使用他们的物理引擎 - 不行
  • 玩愤怒的小鸟并复制物理引擎 - 好的

因此,如果您写了它并受到启发,那很好,但如果您接受了它,那就不好了。另请注意,在反编译方面存在明显的灰色区域,因此如果您想销售您的产品,我不会做任何与此相关的事情。 (或者甚至将其放在应用商店中)

客观来说,不要尝试直接复制某些东西,如果它很受欢迎,你不会仅仅通过相同就复制成功。找到您喜欢的想法并对其进行调整,至少使其更有趣。

What is the link between Monogame and SharpDX (or XNA and DirectX) and cant I use monogame or SharpDX separately?

Monogame 可能在 Windows 和/或 XBox(两者都具有 DirectX 作为选项)上使用 SharpDX。 SharpDX 是一个外部维护的 DirectX 托管接口(interface)。他们没有重做这项工作,而是使用它。是否需要它取决于您的平台。例如,它在 Android 或 iOS 上就毫无用处,因为这两个平台都不支持 DirectX。

Thirdly are there more cross-platform C# frameworks other than those provided by Xamarin?

如果您想回答这个问题,您需要定义框架,可能还需要定义跨平台。例如,Mono 基本上是唯一使用 .NET Framework 框架定义的跨平台框架。

关于c# - XNA、DirectX 和 Monogame、SharpDX 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710761/

相关文章:

directx - 在 SharpDx 中保存为 png

c# - 使用 SharpDx 或 IMSourceReader 从 mp4 文件中读取第二个音轨流

c# - 如何为字体和颜色中的新分类器创建 VS 2017 扩展?

c# - Visual Studio Code : How to see all classes inherited from a base class or interface?

c# - 在对象初始化之前使用反射设置静态变量值?

c# - Monogame:无法将资源作为非内容文件加载

c# - MonoGame Windows 8 - 可写位图

c# - 如何绘制正方形的边框?

c# - 访问系统集成的社交网络帐户

c# - 如何使用SharpDX绘制文字?