C# 减少;饥饿“;可变加班

C# 减少;饥饿“;可变加班,c#,variables,unity3d,math,C#,Variables,Unity3d,Math,我正在尝试做一个游戏,比如不要挨饿,我有一个变量叫做饥饿。我希望这能减少加班时间,如果它变为零,那么球员的健康状况也开始下降。另外,如果你正在冲刺,我希望它能更快地减速(冲刺已经开始工作了)。主要的问题是如何根据你最后一次吃东西的时间,越来越快地减少饥饿变量 大概是这样的: 作为一种变体: 假设你的游戏有某种管理线程,可以监控时间的流逝,所有的全局事件都是从那里启动的 算出那个函数的导数的公式——它可以是离散的。不仅要存储“饥饿”的当前值,还要存储上次进食的时间戳。在这里,你也可以有一些参数,“

我正在尝试做一个游戏,比如不要挨饿,我有一个变量叫做饥饿。我希望这能减少加班时间,如果它变为零,那么球员的健康状况也开始下降。另外,如果你正在冲刺,我希望它能更快地减速(冲刺已经开始工作了)。主要的问题是如何根据你最后一次吃东西的时间,越来越快地减少饥饿变量

大概是这样的:

作为一种变体: 假设你的游戏有某种管理线程,可以监控时间的流逝,所有的全局事件都是从那里启动的

算出那个函数的导数的公式——它可以是离散的。不仅要存储“饥饿”的当前值,还要存储上次进食的时间戳。在这里,你也可以有一些参数,“食物质量”会影响速度吗?当前时间和时间戳之间的差异通过从“饥饿”中减去结果,为您提供了集成饥饿减少功能的值


检查的步骤可能是不规则的,那么仅仅导数和经过的时间是不够的。。。e、 g.如果由于睡眠而出现时间跳过(尽管可以通过增加监视器线程的速度来模拟这种时间跳过)。您必须存储完成最后一步的时间值。

您必须有一个变量来存储您最后吃的东西。然后你可以开始使用一个函数来减少饥饿感。你可以尝试幂函数
a*t^n
或指数函数
a*exp(b*t)
饥饿感是否应该随着时间的推移而增加?@Rotem,如果提到前面提到的游戏,“饱足感”被称为“饥饿感”。但我同意,这让人困惑,谢谢,但我真的不知道如何在unity中使用时间函数(所以如何在脚本中一段时间后触发函数),是的,我知道我需要一个数学函数,但我不知道如何找到一个我可以使用的函数。。。就像我知道一个基本的(x^2),但我想把斜率降低一点…@user9578273 unity只是一个框架,而不是完整的环境或语言。。取决于您在什么语言上编写,使用什么平台,时间和线程同步的实现可能会有所不同。unity还得到了非常粗糙的线性代数,通常需要调整\替换。除了开放世界游戏外,大多数情况下都存在精度问题。