跳转至

目前类的设计思路是:

flowchart TD
  Class
  Class --> Character
  Class --> Weapon
  Class --> OtherClass(ToBeContinue...)
  Character --> CharacterOnBattle
  CharacterOnBattle --> ProtagonistOnBattle
  CharacterOnBattle --> Monster
  Character --> Protagonist
  Protagonist --> Player

因为属性有点多,考虑到性能原因,将战斗内外的属性隔离开来,目前采用的是继承的方式,以后会考虑用组件式,但是我还不会 btw


参考代码:(函数功能还没加,得知晓了具体战斗内的功能按键再设计

// class.h
#pragma once
#include <string>

class Weapon
{
    // todo
};

class Character
{
protected:
    std::string name;
    int         level;
    int         HP;
    std::string race;

public:
    std::string getName() const
    {
        return name;
    };
    int getLevel() const
    {
        return level;
    };
    int getHP() const
    {
        return HP;
    };
    std::string getRace() const
    {
        return race;
    };
};

class CharacterOnBattle : public Character
{
protected:
    struct defence
    {
        int physical;
        int magical;
    };
    int speed;
    int movement;
    int crit; // 暴击

public:
    virtual int attack();
};

/*
在战斗时的主角团
*/
class ProtagonistOnBattle : public CharacterOnBattle
{
    int    SP;          // 蓝量
    Weapon nowEquipped; // 现在持有的武器
};

/*
怪物属性
*/
class Monster : public CharacterOnBattle
{
    struct anti // 抗性
    {
        int physical;
        int magical;
    };
    struct damage // 伤害
    {
        int physical;
        int magical;
    };
};

class Protagonist : public Character
{
    int strength; // 体力
    int favour;   // 好感度
    int exp;      // 技能点
};

class Player : public Protagonist
{
    int luck;
    int right;   // 正义值
    int fatigue; // 疲劳值
};

如果没啥问题,那就考虑起战斗内的功能按键吧,我得设计函数了 (要烧头发了)