标签: monogame

43
推荐指数
4
解决办法
2万
查看次数

MonoGame可靠吗?

我正在寻找一个跨平台的游戏开发框架.MonoGame看起来很容易学习和快速开发,但是我看到他们页面上的大部分游戏都不起作用,或者有很多错误.

任何人都可以解释MonoGame对于ios/droid专业手机游戏开发是否可靠?

mono xna xamarin.ios xamarin.android monogame

28
推荐指数
3
解决办法
2万
查看次数

MonoGame只是XNA吗?

所以我想学习C#和XNA,但经过一些研究后我注意到XNA显然已经死了,还有一个名为MonoGame的替代库使用XNA框架.

那么,我可以为MonoGame使用XNA课程/教程,还是编程完成方式的主要区别取决于你使用什么使XNA教程对MonoGame完全没用?

c# xna monogame

25
推荐指数
2
解决办法
2万
查看次数

AndroidGameWindow.SetDisplayOrientation NullReferenceException

我使用MonoGame和Xamarin为Android开发了一款游戏.我将BugSense合并到其中并迅速开始获得以下异常堆栈跟踪:

System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Xna.Framework.AndroidGameWindow.SetDisplayOrientation (Microsoft.Xna.Framework.DisplayOrientation) <0x001c4>
at Microsoft.Xna.Framework.AndroidGameWindow.SetOrientation (Microsoft.Xna.Framework.DisplayOrientation,bool) <0x00097>
at Microsoft.Xna.Framework.OrientationListener.OnOrientationChanged (int) <0x001c7>
at Android.Views.OrientationEventListener.n_OnOrientationChanged_I (intptr,intptr,int) <0x0003f>
at (wrapper dynamic-method) object.ed9d7c7c-f3e6-4d7a-9249-1a139a251aed (intptr,intptr,int) <0x00043>
Run Code Online (Sandbox Code Playgroud)

这就是我的活动设置方式:

[Activity(Label = "My Cool Game"
        , MainLauncher = true
        , Icon = "@drawable/icon"
        , Theme = "@style/Theme.Splash"
        , AlwaysRetainTaskState = true
        , LaunchMode = Android.Content.PM.LaunchMode.SingleTask
        , ScreenOrientation = ScreenOrientation.Portrait
        , ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden)]
Run Code Online (Sandbox Code Playgroud)

在游戏构造函数中,我有以下内容:

public Game1()
{
    _graphics = new GraphicsDeviceManager(this); …
Run Code Online (Sandbox Code Playgroud)

c# android xamarin.android monogame

17
推荐指数
1
解决办法
318
查看次数

是否有可能在Monogame/XNA中获得"上下文"手势?

我正在使用Monogame开发多点触控应用程序,其中多个用户可以同时处理具有单独文档/图像/视频的更大的多点触摸屏,我想知道是否可以使手势"具有上下文感知",即两个手指在墙壁的一侧捏住文件不应该影响某人平移墙壁的另一侧.

Monogame的工作方式是,所有输入点都转换为手势,可以使用以下方法读取:

if (TouchPanel.IsGestureAvailable)
{
     var gesture = TouchPanel.ReadGesture();
     // do stuff
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让手势限制在屏幕上的某个点,或者我是否需要自己实现?例如,通过查看源代码,看起来TouchPanelState该类完成了所有工作,但不幸的是它的构造函数是internal.

c# multi-touch gesture monogame

17
推荐指数
1
解决办法
309
查看次数

Windows Phone导航按钮与屏幕分辨率重叠

诺基亚820对诺基亚635在下面你会看到一个在Windows Phone 8.1中运行的屏幕.两者都声称视口宽度和高度为800x480但是从图像中可以看出635的导航按钮与游戏区域重叠.

我已经检查了GraphicsDevice.Adapter和GraphicsDevice.Viewport中的各种属性,但它们都是一样的!

屏幕在C#UWP Monogame代码中运行.我将PrefferedBackBufferWidth和Height设置为480x800.

如何判断导航按钮是否占据屏幕的一部分?

c# windows-phone monogame uwp

14
推荐指数
1
解决办法
3648
查看次数

Monogame使用Graphics.DrawString(而不是SpriteBatch.DrawString)渲染文本

使用Graphics.DrawString将一组(相当静态的)文本渲染到屏幕外位图,将其转换为Texture2D一次,然后简单地调用SpriteBatch.Draw,而不是使用内容管道并使用渲染文本,是否有任何缺点SpriteFont?这基本上是一页文本,绘制成"纸张",但用户也可以选择调整字体大小,这意味着我必须包含不同大小的spritefonts.

由于这是一个仅限Windows的应用程序(不打算移植它),我可以访问所有字体,例如普通的WinForms应用程序,我相信使用Graphics.DrawString(甚至TextRenderer)使用精灵字体时渲染质量会好得多.

此外,似乎性能可能更好,因为SpriteBatch.DrawString需要在每次迭代中"渲染"整个文本(即分别为每个字母发送顶点),而使用位图我只做一次,所以它应该稍微减少工作量CPU方面.

  1. 我没有看到任何问题或缺点吗?
  2. 是否可以使用spritefonts获得alpha混合文本?我已经看过周围提到的Nuclex框架,但它并没有被移植到Monogame AFAIK.

[更新]

从技术方面来看,它似乎比通过精灵字体更好地完成文本渲染.如果它们是水平渲染的,我甚至会得到ClearType.可能存在的一个问题是字体的spritesheets(可能是?)在纹理内存方面比为文本页面创建单独的纹理更有效.

drawstring monogame spritefont spritebatch

13
推荐指数
1
解决办法
2665
查看次数

需要关于monogame屏幕分辨率和交集的帮助

目前在我的游戏中我想尝试将我的物体移向x轴和y轴.我还想把它放到中心,我放了一个相机.这是我的相机代码 -

 public class Camera
{
    public Matrix transform;
    public Viewport view;
    public Vector2 origin;
    Vector2 baseScreenSize = new Vector2(1136, 720);
    float horScaling ;
    float verScaling ;
    Vector3 screenScalingFactor ;
    public Camera(Viewport newView)
    {
        view = newView;
        horScaling = view.Width / baseScreenSize.X;
        verScaling = view.Height / baseScreenSize.Y;
        screenScalingFactor = new Vector3(horScaling, verScaling, 1);
    }

    public void update(GameTime gt, ball pl)
    {
        origin = new Vector2(pl.Position.X + (pl.ballRectangle.Width / 2) - 400, 0);
        transform = Matrix.CreateScale(1,1,0) *
            Matrix.CreateTranslation(new Vector3(-origin.X, -origin.Y, 0)); …
Run Code Online (Sandbox Code Playgroud)

c# xna xna-4.0 monogame

12
推荐指数
1
解决办法
252
查看次数

Visual Studio 2012如何调试"无法添加对项目x的引用"错误?

在Visual Studio 2012中一个空白的新类库我试图添加对解决方案中现有项目的引用,也是一个类库,MonoGame.Framework.Windows8(https://github.com/mono/MonoGame),但是得到错误:

无法添加对Project MonoGame.Framework.Windows8的引用

我已成功构建了现有的库MonoGame,并使其成为新库的依赖项.可能是什么问题呢?

(这是非常烦人的错误消息没有给出理由!)

c# monogame windows-8 .net-4.5 visual-studio-2012

10
推荐指数
2
解决办法
1万
查看次数

10
推荐指数
2
解决办法
2万
查看次数