在简单的游戏设置中正确使用物体

Proper object usage in a simple game setting

本文关键字:简单 游戏 设置      更新时间:2023-10-16

假设我想制作一个简单的基于dos的游戏,并且我想创建一些mob,我已经想出了以下我需要的粗略对象,它看起来像这样:

class createMob{ 
    private:
        int healthMax;
        int healthCurrent;
        int manaMax;
        int manaCurrent;
        int experiencePoints;
public:
    void setHealth();
    int getHealth();
    void setCurrentHealth();
    int getCurrentHealth();
    void setMaxMana();
    int getMaxMana();
    void setCurrentMana();
    int getCurrentMana();
    int getExperience();
//etc etc functions truncated for space

};

我的问题是我该如何使用它?假设我创建了一个简单的构造函数,为一个名为"绿色黏液"(这里正在进行的最终幻想主题)的暴徒提供hp/mp/体验。我的基本目标是创造一个具有x/y/z属性的怪物,并根据战斗中发生的事情进行设置。。。什么是最简单的方法来做到这一点,然后有效地进行清理?

如果你在一场战斗中有两个暴徒,战斗将需要比一个回合更长的时间,所以一个回合需要以下全局功能:

void fight(Mob &m1, Mob &m2, int fightstep);

现在这个函数可以改变两个mob的属性。现在,如果暴徒真的在做一些行动来选择战斗的进行方式,你需要一些不同的东西:

void fight(Mob &m1, Mob &m2, 
           std::vector<Action> vec1, std::vector<Action> vec2, 
           int fightstep);

动作是这样的:

enum Action { EDoNothing, EBash, ECastSpellXXXX ... };

现在战斗功能可以使用Mob类的接口来进行更改。