我正在製作一個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