iPhone 应用:如何实现应用内购买的游戏关卡

Posted

技术标签:

【中文标题】iPhone 应用:如何实现应用内购买的游戏关卡【英文标题】:iPhone app: How to implement in-app purchased game levels 【发布时间】:2010-04-09 16:00:58 【问题描述】:

所以,我知道可以为 iPhone 应用设置应用内购买,以购买游戏关卡等非消耗品。我了解购买部分背后的逻辑,但我不明白的是,我该如何交付新的游戏关卡。

例如:我构建了一个包含第一个级别的应用程序,他们购买了其他级别。将所有其他级别构建到应用程序中是否更好,并且每当他们购买该应用程序时,它会通过 plist 条目或其他内容解锁它?这对我来说似乎不是很更新。每次我想出一个新的关卡,我都必须更新应用程序。

那么,我当时不明白的是,我如何打包一个关卡并将其下载为一个可以被游戏访问的单独实体?该级别是否只是一些带有 ZIP 文件夹中的图像的 XML 或其他东西?关卡如何添加到游戏中?这类事情的最佳做法是什么?

我用 Google 搜索并没有发现任何关于此的信息。 我对这个概念有点困惑,任何帮助将不胜感激。我不是在找人为我编写游戏,我只需要指出正确的方向,这样我就可以自己开发了。

【问题讨论】:

【参考方案1】:

您的游戏级别是您想要的;毕竟你是设计师。

您应该查看NSBundle 文档,其中可以包括属性列表、图像资源(等)以及其他代码。打包你的包(zip 很方便),使用NSURLConnection 异步下载,并在安装时检查 NSDocuments 目录中的包并使用NSBundle 加载。

或者对于使用现有资源的简单游戏关卡,只需下载描述它的 plist。

您不需要拥有自己的服务器;如果您有 MobileMe 帐户或任何类似服务,您可以从 me.com 下载。

【讨论】:

谢谢!我通读了文档,这非常有帮助。虽然,它并没有回答我所有的问题。我想我只需要在 XCode 中玩一下,这样我就能掌握它的窍门。不过需要注意的一件事:根据 iPhone OS Reference,NSBundles 不能包含可执行代码。仅限数据(图像、视频、声音、文本等)资源。 是的,我认为你是对的 - MacOSX 包可以,但文档几乎相同。【参考方案2】:

我会阅读In-App Purchase Programming Guide。它包含您需要的所有信息。

总而言之:用户将执行应用内购买并从 Apple 获得数字收据。然后,您的 iPhone 应用程序应联系您的服务器以下载新关卡,并将收据用作 verification of purchase。

如果您没有可用于分发关卡的服务器,您可能需要考虑使用第三方服务,例如 UrbanAirship。

【讨论】:

这并不是我真正感到困惑的方面。我在这里发布之前阅读了编程指南。我得到了实际购买等背后的逻辑。我没有得到的是游戏关卡的实际组成。我的大脑只是断开了连接,我正在尝试调和它。 如果您还没有游戏关卡的组成部分,那么您还没有游戏。在这种情况下,您的马车就在马前。得到一些工作,这些问题会自己回答。

以上是关于iPhone 应用:如何实现应用内购买的游戏关卡的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用内购买 - 下载或解锁新内容?

上传二进制文件后提交应用内购买

即使应用程序关闭,也可以在我的应用程序中保存游戏关卡?

寻找管理游戏关卡视图、关卡选择视图、偏好视图、存储关卡、环境变量的概念

iPhone - 如何检索应用内购买的自动续订订阅的持续时间

我的服务器如何安全地验证 iPhone 应用内购买?