我試圖實現level/xp級數系統。遊戲進程公式(等級和xp)
主邏輯是下一個: 爲第一級用戶應該得到XP 爲第二的1000至2000年3 - 4000 4 - 8000 5 - 16000 6 - 32000 等..
作爲你可以看到,我想用幾何級數 我做了線性發展(團結C#):
float level = (Mathf.Sqrt (100 * (2 * experience + 25)) + 50)/100;
但如何幾何級數? 如果有人有這樣的經驗,請分享 謝謝
我試圖實現level/xp級數系統。遊戲進程公式(等級和xp)
主邏輯是下一個: 爲第一級用戶應該得到XP 爲第二的1000至2000年3 - 4000 4 - 8000 5 - 16000 6 - 32000 等..
作爲你可以看到,我想用幾何級數 我做了線性發展(團結C#):
float level = (Mathf.Sqrt (100 * (2 * experience + 25)) + 50)/100;
但如何幾何級數? 如果有人有這樣的經驗,請分享 謝謝
這應該有效。
Float _CurrentLevelExp = 10;
Int _GeometricProgressionFactor = 3;
Float _NextLevelExp;
void GetNextLevelExp(){
_NextLevelExp = _CurrentLevelExp *
_GeometricProgressionFactor;
}
void IncreaseLevel(){
If (_NextLevelExp <= _CurrentLevelExp){
_CurrentLevelExp = _NextLevelExp;
GetNextLevelExp();
}
}
不能完全確定這是否是你所追求的,我非常新手,但也許這可以幫助你拿出你所追求的。這應該做你想做的。
int currentXP;
int currentLvL;
int baseXP = 1000;
if(currentXP == nextLvL())
{ currentLvL++;}
nextLvL()
{
if(currentXP < baseXP)
{return}
else if (currentXP == baseXP)
{return baseXP;}
else
{
int nextLvLXP = baseXP;
for(i=0; i < currentLvL; i++)
{nextLvLXP += nextLvLXP;}
return nextLvLXP;
}
}
希望這對你有所幫助。
在Unity的動畫曲線中,還有一種很酷的方式來做類似的事情。 看到我的回答在類似的線程: https://stackoverflow.com/a/45612135/2057543
嗯,我看到你想使用'2 ^(n-1)* 1000'。我錯了嗎? –