iOS游戏每日奖励

iOS游戏每日奖励,ios,objective-c,cocos2d-iphone,Ios,Objective C,Cocos2d Iphone,我正在做一个游戏,我想实施一个每日奖励制度;为了每天给一些硬币。 该系统将类似于许多已知的游戏,如《愤怒的小鸟之友》或《暗影枪:死区》。每天,我第一次打开应用程序时,它会给我5个硬币。然后第二天给了我超过5枚硬币,依此类推,直到最后一天给了我一件物品 问题是我不知道从哪里开始,如何开始。是否有任何库可用于执行此操作,或者有一种简单的实现方法?我从不使用日期(例如使用NSDate),这就是为什么我不知道该怎么做。有什么想法吗?谢谢 您需要在服务器上实现此功能,并与用户上次玩游戏的时间进行比较。如果

我正在做一个游戏,我想实施一个每日奖励制度;为了每天给一些硬币。 该系统将类似于许多已知的游戏,如《愤怒的小鸟之友》或《暗影枪:死区》。每天,我第一次打开应用程序时,它会给我5个硬币。然后第二天给了我超过5枚硬币,依此类推,直到最后一天给了我一件物品


问题是我不知道从哪里开始,如何开始。是否有任何库可用于执行此操作,或者有一种简单的实现方法?我从不使用日期(例如使用
NSDate
),这就是为什么我不知道该怎么做。有什么想法吗?谢谢

您需要在服务器上实现此功能,并与用户上次玩游戏的时间进行比较。如果使用设备的日期,
NSDate*date=[NSDate-date]用户只需更改他/她的设备上的日期,就可以让游戏看起来像是新的一天。

实际上不需要安装服务器。你所需要做的就是找到一个你信任的显示日期的网站。每次加载应用程序时,你都可以打电话到该网站并解析以查找日期。然后将此日期保存在
NSUserDefaults
中,并在每次打开应用程序时进行比较

编辑

你需要找到一个显示当前时间的网页(通过谷歌搜索找到一个),然后用你的代码解析该网页以获得包含日期的字符串。在appDelegate中,一旦获得字符串,您将希望按照这一行执行一些操作

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *myDate = [df dateFromString: myDateAsAStringValue];
此时,您需要将其保存到NSUserDefaults中,以便

[[NSUserDefaults standardUserDefault] setObject:myDate forKey:@"lastDatePlayed"];
您还应该添加一些逻辑来将其与上次日期进行比较。。。但这一点不难理解

我是这样做的(不是针对游戏,而是针对常规应用程序,在这方面没有区别)

我在服务器端这样做,基本上我有一个web服务器,它通过http(以json格式发送和接收数据)与应用程序进行通信,两边都有json解析器

在服务器端,我有一个正在运行的服务,每天开始(比较小时!)都会运行我的代码来更新服务器数据库中的点

向我的应用程序公开的web服务当然是检索数据库中的计算数据 并使其在json中可用


它的工作原理是一样的

你可能想要实现这个服务器端,除非你真的不在乎人们玩它。@MarcusAdams我不明白你的意思。他说他们可能有办法搞乱客户端。例如,调整系统时间、卸载和重新安装应用程序、跨设备使用应用程序等。你是对的,这就像作弊。所以我需要先实现一个服务器?嗯,这看起来很难…@Vergmort:不幸的是,它需要一个你也可以做APN的平台,所以它需要套接字支持。很好,我现在就和其他开发者谈谈。非常感谢您的回答。我可以推荐使用[以实现简单、免费的服务器/云集成。@GabCas很容易在iOS开发上实现?真的吗?您能告诉我更多详细信息吗?使用此解决方案,每当网站更改其网页结构时,应用程序都会停止工作(找不到正确的时间)这是真的,但它也可以防止您必须设置自己的服务器。-1依靠一个网站来实现这一点的糟糕解决方案,除非他有控制权,这意味着…他有一个服务器可能他不想为服务器付费。有很多方法可以做事情,有时它们涉及权衡。我说的是,在顶部信任。显然你不会那样做,但如果他不想做服务器,这是一个可行的解决方案。看看这个