【问题标题】:iOS Game that Runs Continuously in Background在后台连续运行的 iOS 游戏
【发布时间】:2013-10-28 15:18:59
【问题描述】:

我试图了解创建在后台连续运行的 iOS 游戏的最合乎逻辑的方式。

例如..你有塔和敌人的波浪。即使游戏退出,游戏也有无穷无尽的敌人波。当您再次打开游戏时,它会检索应用关闭时发生的数据。

我认为服务器上的数据库是最好的解决方案。这些值在服务器上不断增加。游戏连接到服务器并检索特定用户的更新游戏数据。

【问题讨论】:

    标签: ios objective-c xcode cocos2d-iphone coronasdk


    【解决方案1】:

    只有当您想向多个用户展示您的信息时,服务器/数据库才会有帮助,例如高分板。

    在您的情况下,似乎最简单的方法是在本地存储应用退出的时间,当您再次打开游戏时,您将当前时间与之前存储的时间进行比较,然后计算从现在到以前的时间之间发生的所有波浪的影响。

    示例:假设您每分钟有 10 个敌方怪物,我退出游戏并存储时间(12:35),我在 12:45 再次打开游戏,时差 10 分钟 * 10 个敌方怪物攻击了我的塔...从那里你可以计算出 100 个敌方怪物对你的塔的影响:)

    有意义吗? 并且所有这些都不需要任何复杂的客户端/服务器编程。

    干杯

    【讨论】:

    • 这是有道理的。但是,这在 iOS 设备上可行吗?而且这种解决方案不会让游戏“作弊”,例如用户更改他或她的机器时间吗?
    • 这里有两点:#1 一个有动力的黑客总能找到破解你游戏的方法。实际上,在没有任何漏洞的情况下正确地进行客户端服务器编程可能要复杂得多,并且容易出现安全问题。 #2 加密你的本地数据很容易让黑客的生活变得复杂:)
    • 是的,我给出的示例在 iOS 设备上是可行的 :) 你只需要请求系统时间 :)
    • @user2913669 这是一种相当常见的技术。任何离线运行的 iOS 游戏都必须这样做,因为您不能在后台继续运行。
    • 感谢您的回复。所以你们都说在本地访问时间是最好的解决方案?您能否详细说明如何防止用户说只是更改他们的系统时间?
    猜你喜欢
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多