标签: monogame

我可以用C#编写Windows 8 RT游戏吗?

是否可以使用C#编写Windows 8 RT和/或Windows 8 Phone游戏?

c# xna monogame windows-runtime sharpdx

7
推荐指数
1
解决办法
2502
查看次数

Monogame着色器移植问题

好的,所以我把一个我一直在研究的游戏移植到Monogame,但是我现在有一个着色器问题,因为它被移植了.这是一个奇怪的错误,因为它适用于我的旧XNA项目,它也是我第一次在新的monogame项目中使用它,但除非我重新启动游戏,否则它也不会.

着色器是一个非常简单的着色器,可以查看灰度图像,并根据灰色从查找纹理中选择一种颜色.基本上我每次在屏幕上放置一个新的敌人时,都会使用它为一个敌人随机化一个精灵图像.它首次生成敌人,但在此之后不起作用,只是给出一个完全透明的纹理(不是空纹理).

另外,我现在只针对Windows桌面,但我计划在某些时候针对Mac和Linux.

这是着色器代码本身.

sampler input : register(s0);
Texture2D colorTable;
float seed; //calculate in program, pass to shader (between 0 and 1)

sampler colorTableSampler = 
sampler_state
{
    Texture = <colorTable>;
};

float4 PixelShaderFunction(float2 c: TEXCOORD0) : COLOR0
{
    //get current pixel of the texture (greyscale)
    float4 color = tex2D(input, c);
    //set the values to compare to.
    float hair = 139/255; float hairless = 140/255;
    float shirt = 181/255; float shirtless = 182/255;
    //var to hold new color
    float4 swap;
    //pixel …
Run Code Online (Sandbox Code Playgroud)

c# shader xna monogame

7
推荐指数
1
解决办法
736
查看次数

三星更新后的错误| Monogame | 将viewport.height检测为设备宽度

UPDATE

此问题也在以下网址中讨论过:https://github.com/mono/MonoGame/issues/2492

问题是如果应用程序仅允许以横向方向运行,而不是在使用纵向或两者时运行.


有一个以monogame编码的安卓游戏,我得到了一个GraphicsDeviceManager设置为FullScreen=true.

我使用GraphicsDevice.Viewport.HeightGraphicsDevice.Viewport.Width来确定设备的分辨率.这是非常好的,直到我得到三星更新,并不得不关闭FastDev.最大的神秘问题:

当我使用pc进行调试时,其高度和宽度viewport设置正确.但是当我拔掉并在1-2次之后播放应用程序后viewport.Height,设备的宽度viewport.Width就变成了设备的高度,这就完全让游戏无法播放.

很难找到解决方案,因为当我调试并将电缆从PC连接到设备时,这种情况永远不会发生.

任何人都有任何想法可能是什么?


我现在可以确认这是因为三星更新

我制作了世界上最简单的Android应用程序来测试它,只是得到一个带有背景图像"bg"的主机和一个spritefront打印出viewport.Width和viewport.Height.

这是代码:

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace TestRes
{
    /// <summary>
    /// This is the main type for your game
    /// </summary>
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        SpriteFont font;
        Rectangle _mainFrame;
        Texture2D _background;
        string text;

        public Game1()
        {
           graphics = new GraphicsDeviceManager(this);

            Content.RootDirectory = "Content"; …
Run Code Online (Sandbox Code Playgroud)

android resolution monogame xamarin

7
推荐指数
1
解决办法
387
查看次数

注销后,Android API IsConnected返回TRUE

我正在使用Xamarin开发使用Google Play游戏服务的Android游戏.我正在使用Genymotion Android Emulator进行测试.我遇到了一个似乎是Google Play或Xamarin实施中的错误的问题.

如果我退出Google帐户,则对IGoogleApiClient.IsConnected()的调用将继续返回true(即使我已经明确注销).如果我然后尝试使用该API对象,我会得到以下异常:

java.lang.SecurityException:调用API时未登录

例如,如果在注销后执行,则以下代码会导致上述异常:

public void StartNewMatch()
{
    if (!mGoogleApiClient.IsConnected)
    {
        return;
    }

    Intent intent = GamesClass.TurnBasedMultiplayer.GetSelectOpponentsIntent(mGoogleApiClient, 1, 1, true);
    StartActivityForResult(intent, RC_SELECT_PLAYERS);
}
Run Code Online (Sandbox Code Playgroud)

我正在Google Play游戏收件箱(匹配选择器)中退出; 如下图所示.

有没有人遇到过这个?我错过了什么吗?有任何解决方法吗?

注意:只有通过Google的用户界面退出时才会出现这种情况.如果我手动签署用户,等等mGoogleApiClient.Disconnect(),问题就不会发生; mGoogleApiClient.IsConnected()现在返回false(如预期的那样).

在此输入图像描述

在此输入图像描述

在此输入图像描述

android monogame xamarin google-play-services google-play-games

7
推荐指数
1
解决办法
1655
查看次数

在WPF中使用MonoGame

我可以在WPF应用程序中将MonoGame与XAML混合使用吗?例如:用MonoGame编写的游戏核心,但用XAML编写的UI放在MonoGame-Canvas之上.我知道我可以在WinRT中使用MonoGame上的XAML.我可以在WPF中做同样的事情吗?

wpf xna xaml monogame windows-runtime

6
推荐指数
1
解决办法
5280
查看次数

Texture2D.GetData方法的解决方法

我正在使用Monogame将游戏从XNA转换为iOS.
在以下代码段的代码,smallDeform是一种Texture2D在其上予调用GetData方法.

smallDeform = Game.Content.Load<Texture2D>("Terrain/...");
smallDeform.GetData(smallDeformData, 0, smallDeform.Width * smallDeform.Height);
Run Code Online (Sandbox Code Playgroud)

我在使用Monogame时遇到了一些问题,因为iOS中的功能还没有实现,因为它返回了这个异常.

#if IOS 
   throw new NotImplementedException();
#elif ANDROID
Run Code Online (Sandbox Code Playgroud)

我尝试从Windows中序列化XML文件中的数据,以从iOS加载整个文件.序列化文件每个重量超过100MB,这是解析时无法接受的.

基本上,我正在寻找一种解决方法,以便在不使用该方法的情况下从纹理中获取数据(例如a uint[]Color[])GetData.

PS:我在Mac上,所以我不能使用Monogame SharpDX库.

提前致谢.

c# xna textures ios monogame

6
推荐指数
1
解决办法
1487
查看次数

让Monogame内容管道在Windows 8中与Visual Studio 2013一起使用

我已经在VS 2013中使用了monogame,但我无法让内容管道工作.当我尝试导入现有的内容管道项目时,我收到以下错误.

无法加载内容管道

由于2013年没有安装模板,因此我无法创建新项目.

由于我正在运行Windows 8,我无法安装XNA(安装程序停止说它需要Win 7或Vista).在这里阅读:https://github.com/mono/MonoGame/wiki/MonoGame-Content-Processing 似乎需要XNA ..?

编辑

Fex答案获取VS 2013中安装的模板,我可以创建一个新的MonoGame Windows项目.但是我仍然无法创建或打开内容项目,因为它们会因此错误而崩溃

在此输入图像描述

c# monogame content-pipeline visual-studio-2013

6
推荐指数
1
解决办法
5887
查看次数

在Monogame和UIKit之间切换

我一直在寻找和搜索,但似乎无法找到适合我正在尝试做的解决方案,而且我几乎已经到了我必须问的问题是否有可能.

我正在使用Xamarin Studio开发iOS应用程序.我有一些不同的屏幕设置为UIViewControllers,他们运作良好.然而,应用程序的关键是一个游戏,我想使用Monogame,因为我之前使用它并喜欢使用它.

基本上,我必须从UIViewController切换到Game类.我可以通过简单地创建一个新的Game对象并调用Run()来做到这一点,但是当我需要并且将控制权返回给UIViewController时,我无法弄清楚如何离开游戏.

有没有人在应用程序中完成此操作?我已经尝试了所有我能想到的东西,但似乎没有什么可以做到的.它甚至可能吗?或者我是否需要重做它以便Monogame处理所有内容,甚至是应用程序中不属于实际游戏的所有其他内容?

谢谢!

xamarin.ios ios monogame xamarin

6
推荐指数
1
解决办法
539
查看次数

Monogame 3.4和Windows 10 UAP项目的常量Visual Studio Update必需弹出窗口

所以,我一直在尝试Monogame使用Visual Studio在Windows Phone模拟器上启动模板,但我无法让它工作.

这是我尝试过的:

在我的项目中,我遇到了在Visual Studio中为Windows UAP创建Monogame项目的问题.我曾尝试使用向导工具创建项目,但在项目创建之后,我收到了需要安装Universal Platform Tools的消息

见图1

按下"安装"按钮后发生错误

见图2

,但无论如何都会弹出Visual Studio Setup窗口.我已经安装了所有已选择的功能,但这没有帮助.

见图3

解决方案资源管理器中的通知:此项目需要加载Visual Studio更新.右键单击该项目,然后选择"下载更新".

见图4

点击"下载更新"后,我将访问此网站

选择"重新加载项目"后,它会显示以下错误:

见图5

选择突出显示的选项"安装"后,它再次带我到上述网站.

有谁知道我错过了什么或在这种情况下我该怎么办?


安装软件:

Windows 10 Pro带有最新更新

Microsoft Visual Studio社区2015版本14.0.24720.00更新1

Visual Studio的Monogame 3.4

c# visual-studio monogame win-universal-app

6
推荐指数
1
解决办法
637
查看次数

如何在UWP项目中查看文件更改?

我正在从完整的桌面.net将我的游戏移植到UWP,我需要解决的一件事是如何将纹理,着色器等加载到游戏的UWP版本中.

在桌面版本中,我使用FileSystemWatcher来执行此操作,但在UWP中不存在FileSystemWatcher,即使在我完全控制的目录中也是如此.

UWP有同等效力吗?

使用UWP中有限的API集来实现此目的的最佳方法是什么?

c# windows xna monogame uwp

6
推荐指数
1
解决办法
2341
查看次数