2017-09-17 67 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; 
    } 
} 

希望这对你有所帮助。