ゲーム内通貨を持っています。ユーザーが次のアップグレードを購入するために、私は現在、N 回目のアップグレードに N*1000 コインがかかるという非常に単純な方法を使用しています。
現時点では、これを使用することの熱狂的なファンではありません.
解決策の 1 つは、フィボナッチを使用することです。これは、初期には優れた結果をもたらしますが、その後のアップグレードはほぼ不可能になります。
私の数学の知識はかなり限られているので、誰でも解決策を提供できますか
ゲーム内通貨を持っています。ユーザーが次のアップグレードを購入するために、私は現在、N 回目のアップグレードに N*1000 コインがかかるという非常に単純な方法を使用しています。
現時点では、これを使用することの熱狂的なファンではありません.
解決策の 1 つは、フィボナッチを使用することです。これは、初期には優れた結果をもたらしますが、その後のアップグレードはほぼ不可能になります。
私の数学の知識はかなり限られているので、誰でも解決策を提供できますか
シグモイド関数はどうですか?ゆっくりと上昇し始め、ほぼ直線的に上昇し、最後に減速し始めます。
wolfram alpha のグラフを見ると、次のように価格を計算できます。
price = a_bit_more_than_maximum_upgrade_price * sigmoid( x )
開始アップグレードの価格が最大価格の何倍になるかを選択する必要があります。開始を選択すると、最大価格のx=-4
5% 未満の価格が得られます。終了 x は 4 に等しい可能性があります。最大価格の約 95% に到達します。次に、アップグレードの数があります。次のようにシグモイドの入力を計算できます。
x = (upgrade_index / (number_of_upgrades-1)) * 8.0 - 4.0
アップグレード インデックスはゼロから始まり、少なくとも 2 つのアップグレードが必要です :) 最後の数桁を切り捨てるか、切り上げて見栄えの良い数字にすることができます。
これは、 http://programmers.stackoverflow.comに関連する質問のようです。
とにかく、次のような指数関数を使用してみてください。
f(n) = 1000 * 1.1^n
明らかに、100回以上のアップグレードがあると、価格が少しばかげています。条件を使用しn
て特定の数より大きいかどうかを確認し、線形関数を再開して次のアップグレードの価格を計算できます.