gpt4 book ai didi

c++ - 当 `health` 不能高于 `maxHealth` 时,如何在一个对象中定义 `healt` 和 `maxHealth`?

转载 作者:太空狗 更新时间:2023-10-29 23:26:31 25 4
gpt4 key购买 nike

我有一个名为 Warrior 的类,它具有 uint m_healthuint m_maxHealth 属性。我希望我的构造函数采用参数 Warrior(uint health, uint maxHealth)

现在我已经学习了很多 C++,我知道所有的语法等,但是很难找到关于如何使用这些东西等的教程。所以我真的不知道我应该如何定义 healthmaxHealthhealth 显然不能高于 maxHealth :/

以下是我想到的几种方法:

// method 1
Warrior::Warrior(uint health, uint maxHealth) :
m_health((health > maxHealth) ? maxHealth : health),
m_maxHealth(maxHealth)
{}

// method 2
Warrior::Warrior(uint health, uint maxHealth) :
m_maxHealth(maxHealth)
{
if (health > maxHealth) {
m_health = maxHealth;
}
else {
m_health = health;
}
}

我相信还有其他方法。抱歉,如果这只是一个意见问题,但如果 C++ 中有一种“首选”方式,那会是什么?

最佳答案

如果您打算在游戏期间设置生命值,您可能需要考虑这样的事情:

Warrior::Warrior(unsigned int health, unsigned int maxHealth) :
m_maxHealth(maxHealth)
{
setHealth(health);
}

void Warrior::setHealth(unsigned int health)
{
m_health = std::min(health, m_maxHealth);
}

关于c++ - 当 `health` 不能高于 `maxHealth` 时,如何在一个对象中定义 `healt` 和 `maxHealth`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16544648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com