0

我正在开发一个开放式策略游戏。我使用以下公式来计算伤害:

$rand = rand($a, $b) + $c;
$damage = $rand * sqrt(($d / 20) * $c));

$a, $b,$c$d都是用户可以在游戏过程中修改的值,可以通过购买更好的物品 ($a$b)、投资于物品 ( $c) 或投资于他们的角色$d

我现在想要做的是给方程的结果增加一点随机性。但是,由于游戏是开放式的:

  1. 随着时间的推移,静态值将变得不明显/可以忽略不计。
  2. 基于百分比的值会随着时间的推移而产生过多的噪音。

所以,我想添加一个最初很小的随机值,随着输入的增加而增长,但收益递减。我确定我需要某种对数公式,但我不知道该怎么做!

4

1 回答 1

4

如果您将原始伤害计算为 D 和 R 在 [-1,1] 中是随机的,那么您有很多选择。你不想要静态:

D = D + 1 * constant * R

或百分比

D = D + D * constant * R.

介于两者之间的东西可能是

D = D + sqrt(D) * constant * R.

D 在常数和线性之间的任何函数都会给你一个不同的平衡。

于 2010-12-24T04:12:23.533 回答