我已經建立了使用控制檯來構建我有限的C++知識小Roguelike ASCII遊戲。當玩家對象的座標與一個物品(存儲在一個矢量中)相同時,它會設置它,移除物品並將10加到玩家的HP中。擦除元素從矢量擦除多個(C++)
程序開始了在房間9個項目。但是,每當我獲得物品時,它會刪除矢量中的前5個物品(但由於某種原因,它們仍然在屏幕上繪製),並將50增加到健康狀態。所以我剩下4件物品。下一次我得到一個物品時,它將刪除前兩個並將20增加到健康狀態。現在我剩下兩件物品。最後兩次,它一次刪除一個項目。
所以,從本質上講,矢量被減半,每次分裂,我得到一個項目。我已經收窄經歷了很多調試的問題,我敢肯定它是從這個塊的代碼來:
for(int i=0;i<ia.size();i++) //If the player touches an item
{
if(grid[p.getY()][p.getX()]==itm)
{
hp+=10;
cout << "Item "<<i<<" removed\n";
swap(ia[i], ia.back());
ia.pop_back();
system("pause");
}
}
我還在試圖找出載體,因此,如果有人能告訴我我做錯了什麼,我真的很感激它。 :)
使用std ::矢量::抹去? – Stepan1010
也許'打破;'內'如果(...)'有點幫助 – abiessu
我也嘗試矢量::擦除爲好,但什麼都沒有改變。 – TheBeocro