我已经掌握了一些 C++ 游戏源,我对 C++ 还很陌生,并且我已经成功编译了源并且它似乎工作正常,但是有一些我无法解决的烦人的警告。
我的 C++ 编程技能非常基础,我对这些模板变量的东西有很大的问题。尤其是这个名为 int32_t 的模块化模板,它似乎在我的源代码中几乎无处不在。
我在 int32_t 上阅读的文档对新手并不友好,它们非常正式,对于那些不知道如何使用它的人来说真的很难理解。(嗯,我觉得我实际上可能看错了地方)。
重点:
这是我遇到问题的功能:
int32_t Weapons::getMaxMeleeWeaponDamage(int32_t attackSkill, int32_t attackValue, float attackFactor)
{
return ((int32_t)std::ceil(((attackValue * 0.05) * attackSkill) + (attackValue)) / attackFactor);
}
给出的警告:
170 C:\compiling\GameSources\weapons.cpp [警告] 转换为int32_t' from
浮点数'
线索是,我确实希望它在计算时考虑到浮点数,并返回一个 int 值。(所以伤害计算是准确的,但是游戏客户端上的伤害显示返回的是伤害的整数表示)。
据我所知,这个警告只是告诉我我想听什么。但是我怎样才能摆脱这个警告呢?(除了告诉我的编译器忽略警告之外,我不希望这样)。