问题标签 [monogame]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 无法使用带有 VS2012 的 Monogame 加载内容
我的代码是
new GameFont(Content.Load<SpriteFont>("LoadingFont"), "LoadingFont")
根据我阅读的内容,您必须使用VS2010将您的资产编译为.xnb格式,我已经这样做了,并将它们放入您的bin目录中的Content子文件夹中,我也这样做了。但是,我收到一条错误消息,提示“无法加载 LoadingFont 资产!”。
我不确定还能做什么。我读过一篇很老的帖子,说使用 XNA 4 制作的资产不起作用,但我不知道这是否仍然正确,或者如何将我的 XNA 版本更改为 3.1。
有任何想法吗?也许根本不使用VS2010有更好的方法?
visual-studio-2010 - XNA Mono 触控游戏 - 触控不起作用
我已经安装了 Visual Studio 2012 Express 和 Mono SDK,所以我可以进行 XNA 游戏开发。
我今天开始阅读有关触摸屏和 Microsoft.XNA.Framework.Input.Touch 命名空间的信息。我已将以下代码放入主游戏类的 Initialize() 方法中:
但 tc.IsConnected 返回 false。我正在触摸 Windows 8 平板电脑上开发,所以不明白为什么它会返回 false。任何人都可以帮忙吗?
3d - XNA/Monogame,绘制多个剪切/倾斜精灵的最快方法
我通常SpriteBatch
在 XNA/Monogame 中为 2d 游戏工作,并且最近刚刚研究了诸如DrawUserIndexedPrimatives
之类的 3D 绘图方法。我正在做一个项目,我们的动画师希望能够剪切精灵和纹理。
随着您可以在开始剪切对象SpriteBatch
时传入一个矩阵。SpriteBatch
就像是:
这样做的明显缺点是它需要您SpriteBatch
为每个剪切的精灵进行新的开始和结束调用。我们目前只需要 2 次调用即可SpriteBatch
开始我们的游戏。一个用于 UI,一个用于 World 的东西。我们的美工想要使用剪切来处理摇摆的树木或为生物的腿和四肢设置动画,所以如果我们给他们选择的话,我可以看到这个数字会跃升至 10 多个单独的批次。
平均水平有大约 250 个元素,每个元素包含 10-20 个精灵。
我已经为 Android 编写了一个测试,该测试调用了 1000 个精灵。在没有任何倾斜的情况下,它可以在大约 11 秒或大约 53fps 内绘制全部 1000、600 次。但如果我每十个精灵倾斜一次(添加 100 个新SpriteBatch
调用),则需要 47 秒,或大约 12fps。
这真的很糟糕。即使只有 200 个精灵(每十分之一倾斜),测试也会下降到 28fps。
因此,我还使用使用DrawUserIndexedPrimitives
. 每个 Quad 使用BasicEffect
在 Game 类中创建并通过Sprite
类构造函数传入的共享。我在每个之前设置了世界矩阵和纹理,pass.Apply()
如下所示:
对于 1000 个精灵,没有歪斜,这给了我 12fps(我想这就像拨打 1000 次spriteBatch
电话)。这真的很糟糕。但是对于每 10 个精灵倾斜的只有 200 个精灵,我得到 46fps,这明显好于SpriteBatch
(即使我调用了DrawUserIndexedPrimitives
200 次)。
- -我的问题 - -
我怎么能批量调用DrawUserIndexedPrimitives
(或类似的东西),同时保持我的精灵每个都包含在他们自己的继承类中DrawableGameComponent
?由于我们游戏引擎的性质以及它处理动画、碰撞和其他东西的方式,最后一部分非常重要。
我已经阅读了有关 Vertex Buffers 和的内容DrawIndexedPrimitives
,但并没有完全理解它,也不知道如何为以这种方式绘制的精灵分配新的纹理和世界变换。
SpriteBatch
我是否应该期望与批处理这些调用相比具有相似/更好的性能?
c# - 在 VS2012 中无法将新的单游戏内容项目添加到解决方案中
我正在尝试将新的 MonoGame 内容项目(通过安装在 MonoGame 3.0 安装程序中的模板)添加到 Visual Studio 2012(专业版)中的现有解决方案中,但它总是出现以下对话框:
它确实在项目应该存在的地方创建了一些空文件夹,尽管它们中没有任何内容。在此弹出窗口之后,它还会出现:
我没有安装 XNA,因为 VS2012 不支持它。
另外,我使用的是 Windows 7。
谢谢!
c# - 在 DLL“opengl32.dll”中找不到名为“glBindFramebuffer”的入口点。在 MonoGame 3.0 中
最近我在笔记本电脑上安装了 MonoGame 3.0。我从项目模板中拿了一个乐队 New "MonoGame Windows OpenGL Project" 并尝试运行它,我得到了这个异常。
例外在这里:
我已安装:
我在用 :
有什么需要安装的吗?
注意:如果我使用 MonoGame 2.5.1.0,那么一切正常。此异常仅在我安装 MonoGmae 30 时发生。
audio - 单人游戏声音故障
我在使用 monogame 2.5 时遇到了一些声音问题
我的应用程序正在加载一组 png 并在渲染期间显示它。加载和渲染非常好而且很快,但是声音“非常慢”,并且充满了“故障”。似乎主线程没有足够的时间来处理声音。
深入研究代码,我发现了这种方法:
所以,我认为这个方法必须被称为 1/33 s。
问题是我必须每 1/12 秒加载一个新图像,这个过程很耗时并且会停止主线程。
当然,我尝试使用后台工作者,但由于我需要一个Texture2D
实例,由于OpenGL
上下文,我必须在主线程中加载它。
我试图在后台工作人员中加载图像,并Texture2D
在主线程中创建,但这并没有解决问题。
哦,我的声音是mp3声音,但我用wav测试过,没有结果!!:(
c# - 在 MonoGame 中播放视频
我正在尝试在单人游戏项目中播放视频。我过去在 XNA 中通过包含 Framework.Video 目录来完成此操作,这非常简单。这不能在 monogame 中完成,因为 Visual Studio 2012 不会接受 XNA 目录。
如果您实际上可以将视频放在monogame中,并且如果可以的话,我无法在任何地方找到任何其他解释方式。
有任何想法吗?
c# - 两台分辨率不同的显示器上的 Windows 8 应用 XNA
我正在使用 Monogame 为 Windows 8 应用商店编写 XNA 游戏。我还在使用连接到外接显示器的笔记本电脑。自然,我的外接显示器的分辨率比我笔记本电脑的屏幕高得多。当我将应用程序从一个屏幕拖到另一个屏幕时,视口上的分辨率会发生变化。
在我的构造函数中,我正在使用
设置我的视口分辨率。当应用程序在任一监视器上运行时,这使得应用程序可以正常工作,但是将应用程序从一个监视器拖到另一个监视器会更改 GraphicsDeviceManager 上的分辨率。有没有办法阻止这种变化?
visual-studio - 确定在 Visual Studio 2012 中创建什么类型的项目以构建单声道兼容的类库
我正在构建一个多平台应用程序,利用 MonoGame,但我对 Mono 开发非常陌生。结果我有几个问题。
暂时在 Visual Studio 2012 中进行所有开发是否合理,然后当我准备将非 Microsoft 环境作为目标时转移到 MonoDevelop?
为了开发可以在任何运行 Mono 的目标系统上使用的类库,我需要做什么样的配置?
是否建议允许 Windows 环境将应用程序作为 .NET 应用程序运行并让其他部署在 Mono 上运行,或者是否有令人信服的理由选择平面 Mono 配置(或者作为 .NET 应用程序运行确实有好处?)
c# - MonoGame 阅读触摸手势
我目前正在使用梦幻般的 monogame 框架编写游戏。我无法正确响应触摸输入。当用户水平或垂直拖动时,我想每次拖动执行一次操作。问题是每次拖动都会多次发出手势。这是我的代码:
出于本示例的目的,我已将所有这些代码移到一个块中。返回的 RotateRightCommand 或 RotateLeftCommand 然后由在屏幕上旋转对象的调用代码执行。这整个代码块正在monogame的更新循环中运行。我认为我在重置触摸输入方面遗漏了一些东西,这就是为什么我一次拖动会返回 3 或 4 个 RotateCommands。我究竟做错了什么?