我正在用C++制作一个控制台rpg,我有一个问题。我是否可以制作一个数组来存储角色的属性,该属性将像“Attribute [atr_health] += 200;”那样进行更改(我从一个游戏中就知道属性是否像“hero.attribute[ATR_HITPOINTS] += 1;”那样进行了更改)?这段代码可以使用“Attribute [atr_health] -= damage;”吗?

最佳答案

我将使用mapunordered_mapenum来访问其值:

#include <map>
#include <string>

enum Attrs {DAMAGE, LIFE, ARMOUR};


class Dude
{
    private:
     map<int, int> attrs;
    //You can use a string map instead
    //map<string, int> attrs;
    public:
    Dude()
    {
        attrs[DAMAGE]   = 10;
        //attrs["DAMAGE"]   = 10;
        attrs[LIFE]     = 10;
        //attrs["LIFE"]     = 10;
        attrs[ARMOUR]   = 5;
        //attrs["ARMOUR"]   = 10;
    }
}
这样的事情可能会起作用。

关于c++ - 属性数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21204414/

10-13 07:35