角色属性的存储结构

在RPG项目中,面对策划提出的多样化角色属性需求,传统的单一变量存储方式不再适用。为了确保灵活性和扩展性,本文介绍了采用字典结构来存储角色属性的方法,通过定义属性枚举,实现了一种高效的角色属性类设计方案。
摘要由CSDN通过智能技术生成

rpg项目中角色属性多种多样,策划脑洞多大,属性就有多少种.所以用一个变量存一条属性这种方式在项目中肯定会被老大骂(当然小游戏无所谓了).

不可取:

public class ActorData{
    public int Hp;
    public int Mp;
    public int Def;
    ...
}

要保证灵活和扩展性,我使用了字典的方式存储

定义属性枚举

public enum PropTag{
    Hp,    //血量
    Mp,    //蓝量
    Def,     //防御
}

现在属性类可以写成这样

public class ActorData{
    public Dictionary<PropTag,int> m_PropDatas = new Dictionary<PropTag,int>();

    //设置属性
    public void SetPropData(PropTag tag,int val){
        if (m_PropDatas.ContainsKey(tag)) {
           m_PropDatas[tag] = val;
       } else {
           m_PropDatas.Add(tag, val);
       }
    } 

    //获取属性
    public int GetPropData(PropTag tag){
        if(m_PropDatas.ContainKey(tag)){
            return m_PropDatas[tag];
        }
        return 0;
    }

    //属性增加
    public
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值