我正在制作一个C++ RPG。在C++ x中的Rpg游戏可以低于0吗?
这里是我的代码: http://pastebin.com/cyR5bzKR
它让我去为-1,然后我也去不了。 我也可以去4,然后它我不能去任何地方。
任何帮助?
我不希望这会过于复杂。
P.S.我使用Code :: Blocks我不认为这是问题。
我正在制作一个C++ RPG。在C++ x中的Rpg游戏可以低于0吗?
这里是我的代码: http://pastebin.com/cyR5bzKR
它让我去为-1,然后我也去不了。 我也可以去4,然后它我不能去任何地方。
任何帮助?
我不希望这会过于复杂。
P.S.我使用Code :: Blocks我不认为这是问题。
在决定玩家是否应该移动时,您需要考虑下一个操作。
像这样的东西应该工作...
if(dir == "L" && x-1 >= xMin) {
printf("You Went Left");
x--;
}
谢谢!这工作像一个魅力。真的很高兴我发现这个网站:D – user1564265 2012-08-15 09:54:48
if(dir == "L" && x > xMin)
{
printf("You Went Left");
x--;
}
else if(dir == "R" && x < xMax)
{
printf("You Went Right");
x++;
}
else
{
printf("You can't go that way.");
}
你有这样的代码:
if (x >= min) --x;
你正在检查一个值是否大于或等于另一个值,在递减之前。即如果它相等,你仍然递减,因此,它会比之后的值小。
的解决方案是仅减少,如果大于的最小值:
if (x > min) --x;
你需要,当你向右移动,你是不是在最右边检查。同样,当向左移动时,你需要检查你是不是在最左边的位置。
但是,你正在测试你还没有超越最右边/最左边的位置(并且也检查你在董事会,这似乎是不必要的)。
你想要的东西像
if (dir == "R" && x < xmax) ++x;
else if (dir == "L" && x > xmin) --x;
你做其他的检查是多余的。
欢迎:)如果您可以设法让问题自成一体,那么回答起来要容易得多。我的意思是独立的意思是我们不应该遵循任何链接。这也将防止链接腐烂,这个网站的一个既定目标,使其长远来说更有价值。 – 2012-08-15 09:09:32