2017-09-17 66 views
0

我試圖實現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; 

但如何幾何級數? 如果有人有這樣的經驗,請分享 謝謝

+2

嗯,我看到你想使用'2 ^(n-1)* 1000'。我錯了嗎? –

回答

0

這應該有效。

Float _CurrentLevelExp = 10; 
Int _GeometricProgressionFactor = 3; 
Float _NextLevelExp; 

void GetNextLevelExp(){ 
_NextLevelExp = _CurrentLevelExp * 
_GeometricProgressionFactor; 
} 

void IncreaseLevel(){ 
If (_NextLevelExp <= _CurrentLevelExp){ 
_CurrentLevelExp = _NextLevelExp; 
GetNextLevelExp(); 
} 
} 
0

不能完全確定這是否是你所追求的,我非常新手,但也許這可以幫助你拿出你所追求的。這應該做你想做的。

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; 
    } 
} 

希望這對你有所幫助。