5

我一直在使用 XNA 为 xbox 和 windows phone 7 制作游戏。现在我想使用 MonoGame创建一个Metro Windows 8 Store 应用程序。

我已经成功地跳过了所有的障碍并让它工作了,但是我遇到了Guide.IsTrialMode.

我有单独的逻辑,具体取决于游戏是否处于试用模式,可以在其他平台上运行,但是当我在本地机器或模拟器中测试我的应用程序时,它总是认为我没有购买游戏。我担心的是,当它出现在应用商店并且人们实际购买时,逻辑不会改变。

TL;DR:在 MonoGame 中是否Guide.IsTrialMode适用于 Windows 8 商店应用程序,我该如何测试它?

4

1 回答 1

3

编辑:在调试中,您Guide.SimulateTrialMode似乎可以设置以测试一种或另一种方式。


以下是有关 Windows 8 应用商店应用中试用模式的信息:

创建应用程序的试用版

LicenseInformation 类

基本上,它使用一个 bool 标志licenseInformation.IsTrial。如果您随后深入研究 GitHub 上的 MonoGame 源代码,我们可以看到它们是如何实现检查的:

#if WINDOWS_STOREAPP
    var licenseInformation = CurrentApp.LicenseInformation;
    ...
    isTrialMode = !licenseInformation.IsActive || licenseInformation.IsTrial;
#endif

因此,您的 licenseInformation 似乎未设置为活动,或者如果您在测试时遇到问题,则设置为试用。第一个链接包含有关如何测试它的信息,但我不确定如何将其扩展到 MonoGame:

现在,使用对许可证服务器的模拟调用来测试您的应用程序。在 JavaScript、C#、Visual Basic 或 Visual C++ 中,将应用初始化代码中对 CurrentApp 的引用替换为 CurrentAppSimulator。CurrentAppSimulator 从位于 \Microsoft\Windows Store\ApiData 的名为“WindowsStoreProxy.xml”的 XML 文件中获取特定于测试的许可信息。如果此路径和文件不存在,则必须在安装期间或运行时创建它们。如果您尝试在该特定位置不存在 WindowsStoreProxy.xml 的情况下访问 CurrentAppSimulator.LicenseInformation 属性,您将收到错误消息。

我猜在最坏的情况下,您可以自己构建 MonoGame,更改CurrentAppCurrentAppSimulator.

于 2013-08-15T00:06:02.227 回答