这是我的代码:
Weapon SpikeClub;
SpikeClub.name = "SpikeClub";
SpikeClub.damage = 25;
SpikeClub.player_has = false;
SpikeClub.durability = 20;
cin >> player_input;
if (player_input == "Spike Club")
{
SpikeClub.durability--;
}
if (SpikeClub.durability == 0)
{
SpikeClub.player_has = false;
}
if (oppArmor_Wearing == true)
{
SpikeClub.damage = 10;
}
if (oppArmor_Wearing == false)
{
SpikeClub.damage = 0;
}
这是我正在制作的史前RPG中的一种武器。最重要的是损坏,耐久性等参数。我的问题出现在代码读取的位置
if (oppArmor_Wearing == true)
{
SpikeClub.damage = 10;
}
if (oppArmor_Wearing == false)
{
SpikeClub.damage = 0;
}
返回的错误是#34; oppArmor_Wearing未在此范围内宣布"。 其他修复程序似乎与我的代码结构不同,但有人可以帮助我吗?我知道这是一个基本问题,但我不记得如何在这样的情况下声明变量。 (自从我做了C ++以来已经有一年了,我正在调试一个旧项目)
答案 0 :(得分:0)
仔细检查是否
oppArmor_Wearing
在您的武器结构中声明。
答案 1 :(得分:0)
正如其他人已经提到的那样,oppArmor_Wearing没有在任何地方定义。根据您的其余代码,我认为您的代码应该是解决问题的原因
Weapon SpikeClub;
SpikeClub.name = "SpikeClub";
SpikeClub.damage = 25;
SpikeClub.player_has = false;
SpikeClub.durability = 20;
cin >> player_input;
// Add these lines in
bool oppArmor_Wearing = false;
// Make sure you define player_input2 as your input like you did for player_input
cin >> player_input2;
if (player_input2 == "Opponent has armor")
{
oppArmor_Wearing = true;
}
if (player_input == "Spike Club")
{
SpikeClub.durability--;
}
if (SpikeClub.durability == 0)
{
SpikeClub.player_has = false;
}
// changed this to if/else instead of 2 ifs
// although I think the blocks should be swapped because
// if the opponent is wearing armor, your spike club should
// probably do less damage
if (oppArmor_Wearing)
{
SpikeClub.damage = 10;
}
else
{
SpikeClub.damage = 0;
}
希望它有所帮助!