我一直在使用XNA为xbox和windows phone 7制作游戏。现在我想使用MonoGame创建一个 metro Windows 8商店应用。
我成功地完成了所有的工作,并使其正常运行,但我遇到Guide.IsTrialMode
的问题。
我有单独的逻辑,取决于游戏是否处于试用模式,哪个适用于其他平台,但是当我在本地计算机上测试我的应用程序时,或者在模拟器中它总是认为我没有购买游戏。我担心的是,当它在应用程序商店中并且人们实际购买它时,逻辑不会改变。
TL; DR:对于Windows 8商店应用,Guide.IsTrialMode
是否适用于MonoGame,我该如何测试?
答案 0 :(得分:3)
编辑:在DEBUG中,你可以设置Guide.SimulateTrialMode
以便测试这种或那种方式。
以下是有关Windows 8商店应用程序中试用模式的信息:
基本上,它使用bool标志licenseInformation.IsTrial
。如果您再深入研究MonoGame source code on GitHub,我们可以看到他们如何实施检查:
#if WINDOWS_STOREAPP
var licenseInformation = CurrentApp.LicenseInformation;
...
isTrialMode = !licenseInformation.IsActive || licenseInformation.IsTrial;
#endif
因此,您的licenseInformation似乎未设置为活动状态,或者如果您遇到测试问题则设置为试用版。第一个链接有关于如何测试它的信息,但我不知道如何将其扩展到MonoGame:
现在,使用对许可证服务器的模拟调用来测试您的应用程序。在JavaScript,C#,Visual Basic或Visual C ++中,在应用程序的初始化代码中用CurrentAppSimulator替换对CurrentApp的引用。 CurrentAppSimulator从名为“WindowsStoreProxy.xml”的XML文件中获取特定于测试的许可信息,该文件位于\ Microsoft \ Windows Store \ ApiData中。如果此路径和文件不存在,则必须在安装期间或运行时创建它们。如果您尝试访问CurrentAppSimulator.LicenseInformation属性而该特定位置没有WindowsStoreProxy.xml,则会出现错误。
我想在最糟糕的情况下,您可以自己构建MonoGame,将CurrentApp
更改为CurrentAppSimulator
。