用户类有一个Energy列,这个值的上限为30。每10分钟,每个用户对象应该再生1能量。实现此功能的最佳方法是什么?
作为奖励,是否有办法让每个用户都有自己独特的计时器,这样,当他使用第一次能量限制后,它就开始倒数10分钟?
目前对使用Parse.com感兴趣,我假设需要使用云代码。谢谢!
发布于 2014-08-27 18:00:10
除非有很好的理由,否则不要尝试将游戏逻辑放在数据库中。特别是不要试图构建一个解决方案,在这个解决方案中,您必须在服务器上运行数千个计时器。
定时器代码属于客户端。
我实现它的方法是存储他们最后一次获得能量的日期/时间,当应用程序中的计时器将“现在”与之进行比较时,根据需要添加更多的能量,存储最近10分钟边界的新日期/时间。
这个逻辑还可以处理应用程序在这段时间内处于休眠/关闭状态,只需在app启动时调用相同的代码即可。
如果安全性是一个问题,那么存储数据来安全地计算,并将这个逻辑放入一个云函数中,但是在客户机中仍然有调用它的计时器。
使用此方法触发计时器的频率取决于您。如果你真的愿意的话,你可以每秒钟发射一次它,它仍然每10分钟增加一次能量。
发布于 2014-08-27 09:18:52
如果您编写一个作业,您可以每10分钟运行一次,云代码可以提供帮助,但只限于您能做的事情。首先,作业最多只能执行4秒,这意味着使用云代码更新大量用户列表是不可能的。
最好的解决方案是编写一个脚本,您可以每10分钟在服务器上调用该脚本,例如cronjob。
使用Parse,您可以检查类中的时间戳,并检索任何需要更新其能源的用户。然后脚本将循环通过该列表并按1更新他们的能量。安排脚本每分钟运行一次,以便能源在使用后被更新到最近的分钟。
https://stackoverflow.com/questions/25523174
复制相似问题