晓月_游戏属性开发(一) Attribute

发表于2016-07-26
评论2 3.2k浏览

简单介绍下游戏属性:

我们玩游戏大部分是在玩一些数值属性。

比如爆了一把绝世好剑,上面带有攻击眩晕概率,我的写法就会在眩晕属性上添加概率。这样在后面的数值计算上就会有相应的计算了。

有的数值也是很炫酷的,比如装备强化到某些值之后也会有相应的特效外观等。像武器发光,武器带残影都帅炸了呢。

好的属性数值设计会增加人的代入感,认同感,趣味性。差的属性数值设计有时候会让人感觉只是一堆空洞的数字,没有动力去追求更加美好的体验。


通用的属性:

首先,很多游戏都有相通的属性值分析。

名字,昵称,生命值,法力值,等级,经验值

攻击力,防御力,暴击率,闪避率 速度 命中率

附加的属性话就有很多讲法了

力量 敏捷 智慧 速度 幸运 智力 破甲 反甲

生命回复 法力回复 感电概率 

眩晕概率  属性抗性 复活概率


Attribute.cs

1: 直接一个属性一个属性的创建  int hp ,int mp......

2: 创建一个字典,然后用不同的key来代替不同的属性类型

       优点是随时可以添加一个新的属性字段,方便修改

       缺点是你得创建一个枚举类型方便你去记录这些属性类型(参见我的Index.cs)所有的属性都必需弄成一个格式,不能混合。我都设置为Int的。


set_Attribute//这个是试着设置数据,如果有的话则直接修改,如果没有的话则直接添加设置属性。

public bool isContainsKey(int key);判断空值现象

get_Attribute( int key )  提前判断空值现象



属性优化:数据操作类  AttributeHandle

写这个类主要是和上面的数据类分开,主要方便修改一些,简洁一些吧,当然也可以写在一起。

Attribute_Handle   其中里面的修改方法可以从其他的几个类进行处理

添加基本属性

增 减 生命值

增 减 法力值

增 减 经验值

增 减 等级

添加 职业

增 减 攻击力/防御力   等相关属性值,都是从这里进行处理


    //暂时添加基础属性添加的方法啦。

    public static void set_BasicAttribute(XyAttribute atts, int hp, int mp, int epx, int attack, int defend, int speed)

    {

        atts.set_attribute((int)index_attribute.hp, hp );

        atts.set_attribute((int)index_attribute.mp, mp );

        atts.set_attribute((int)index_attribute.epx, epx );

        atts.set_attribute((int)index_attribute.attack, attack );

        atts.set_attribute((int)index_attribute.defend, defend );

        atts.set_attribute((int)index_attribute.speed, speed );

    }


一起学习Unity3d的可以加我的Q : 1970007869  加我进群

下面是我在主角中使用刚才属性脚本添加的打印:


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