晓月_游戏中的人物属性(三)人物升级啦

发表于2016-09-18
评论0 2.2k浏览
  游戏中的快乐有一个就是扮演的人物升级了,因为战斗力的成长会使玩家有一种满足成就感。所以一般升级的特效,声音都会做得比较好。当然数值方面也会非常重要,成长太小,玩家会没有多大的升级感觉,成长太大可能会破坏游戏的平衡。当然除了特效声音,升级最重要的就是一瞬间完成,而且是原地满血满蓝,这个大多数玩家都能明显感到。
  下面讲讲我具体的实现,当然都是业余的,希望大家批评指正。

   

LevelUpHandle.cs      管理升级的所有事情
1
2
3
4
5
6
7
8
9
10
11
12
public static void levelUp( Player player )
   {
       Debug.Log("恭喜,升级了!");
       //等级
       Level(player);
       //经验
       Exp( player );
       //基本属性
       BasicAtts( player );
       //HP MP
       HPMP( player );
   }
因为比较简单,暂时先升级这4个属性。
  1、等级的提升算是比较简单的,因为他的增量是固定的,就是简单的 level ++;就好了。
1
2
3
4
public static void Level(Player player)
    {
        AttributeHandle.plus_Level(player.Atts);
    }
  2、经验的曲线的话是依托于上面的等级进行变化的,多少等级对应多少经验值,我采用了简单的三次函数
1
2
3
4
5
6
public static void Exp(Player player)
    {
        int level = AttributeHandle.get_Level(player.Atts);
        int  value = (int)Mathf.Pow( level , 3 ) * 10 + 100;//经验曲线暂时设定为
        AttributeHandle.set_Exp(player.Atts , value);       
    }
  3、基本的属性的话,以后可能会参数实际成长过程中的攻击次数,承受的伤害等等进行攻防成长偏移,现在采用固定的属性成长。暂时定为每级10点攻击,7点防御力
1
2
3
4
5
6
7
private static void BasicAtts(Player player)
    {
        int attackValue = 10;
        AttributeHandle.plus_Attack(player.Atts, attackValue);
        int defendValue = 7;
        AttributeHandle.plus_Defend(player.Atts, defendValue);      
    }
  4、血量和蓝量的成长也算是很重要的一个属性成长了,以后肯定也会根据实际情况进行具体的改进。现在的思路是固定的成长 + 一个随机的小范围偏移
1
2
3
4
5
6
7
8
9
public static void HPMP( Player player )
    {
        //HP每次都增加100 + 偏移量 10
        int value = 100 + XYRandom.lottery(10);
        AttributeHandle.plus_HP(player.Atts ,value );
        //MP每次都增加50 + 偏移量
        value = 50 + XYRandom.lottery(5);
        AttributeHandle.plus_MP(player.Atts, value);        
    }

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: