2012-07-15 103 views
0

我开始在Corona SDK中开发类似于tamagotchi(虚拟宠物种类)的应用程序。我完全陷入困境,并没有想出如何获得一部分的想法。游戏后数据变化无效

游戏角色,可以说“宠物”如何改变其状态,例如:在游戏不活动时变得饥饿或死亡?或者也许有可能在玩家下次进入游戏时进行更改,也许可以将其与全球时间绑定(仍然不知道如何操作)?

我将不胜感激任何帮助。

回答

0

我能想到的最简单的方法就是将所有相关数据保存在一个文件中。第一个数据将是上次游戏变为非活动状态时的时间戳。

每次游戏首次启动时,它都会随着时间戳一起读取文件。经过一段特定的时间后,宠物会变得饥饿,疲倦等。如果宠物死了很长时间,宠物就会死去。

你可以在每个数据旁边加上一个时间戳,比如“上次喂食”,“最后浇水”等等,然后你可以让个人属性在不同的时间到期,包括通过保持全球性的无聊死亡“最后活跃”时间,如果很长时间没有运行游戏宠物死亡。

+0

谢谢!我得到了全球的想法。你认为我应该通过操作系统时间吗?类似于:lastFed.osDate = 19.00; newGame.osDate = 22.00; noFoodTime = 3.00;饥饿= noFoodTime * HungerPerHour;我知道我是地狱般的白痴:)无论如何,这个主意是对的吗? – 2012-07-15 19:08:24

+0

更精确饥饿加载= hungerMax - (noFoodTime * HungerPerHour); – 2012-07-15 19:22:39

+0

无论什么作品,最容易解析。说实话,我没有iPhone,也没有使用Corona;但从游戏开发的角度来看,上述解决方案是最简单的。尽管我很小心直接从操作系统获取时间,但用户不能手动更改时间吗?如果你计算的时间变为负值,他们可能会破坏游戏或意外地杀死他们的宠物。 – Casey 2012-07-15 20:14:32

0

我实际上创建了一个像这样的应用程序。我在一个枚举中创建了许多状态,然后在checkMoodState方法中对硬编码决定了情绪状态的值进行了硬编码。

例如

  • timeSinceLastPlay

  • timeSinceLastFeed

或什么的。

要么为你想跟踪的每个变量写入日期,要在每次检查时将它们存储或存储在NSUserDefaults中(一个函数全部写入,一个函数全部载入),从中减去当前时间。你将被留下一个负数,你可以得到它的绝对值。

无论您正在检查什么,您都可以随时决定是否检查最后一次。喂养。根据检查之间的时间和定时器调用的方法创建一个NSTimer,您可以根据需要检查和更新心情。

+0

感谢您的答复!想要问你,据我所知(你说你使用过NSTimer),你在Obj-C中创建了你的应用程序。你认为在这样的应用中,它会优于lua吗?我问,因为我的obj-c知识比简单易用的lua更糟:) – 2012-07-15 20:55:33

+0

“这样的应用程序” - 你的意思是在Objective-C中吗?我不知道lua tbh的表现。如果我不得不猜测,我认为任何母语都会优于解释型脚本语言,但我不确定它在iOS上会细分到什么,也许是C,如果有的话。我对iOS以外的语言(除C以外)的Objective-C(C++的一小部分)确实没有任何知识。 Objective-C是一种很好的语言imo;) – jarryd 2012-07-15 21:22:10

+0

'(一个函数将它们全部写入,一个函数将它们全部加载)'...并且在黑暗中'迟到'绑定它们......抱歉,无法抵抗。 :P – Casey 2012-07-15 21:40:30