void Game::save()
{
fstream save,save1,save2;
Text title("Save your game", font, 80);
title.setPosition(window.getSize().x / 2.0 - title.getGlobalBounds().width / 2.0, 50.0);
Text text[4];
string str[] = { "Empty save","Empty save","Empty save","Return" };
for (auto i = 0;i < 4;i++) {
text[i].setFont(font);
text[i].setCharacterSize(30);
text[i].setString(str[i]);
text[i].setPosition(window.getSize().x / 2.0 - text[i].getGlobalBounds().width / 2.0, (250.0f + i * 50.0f));
}
while (state==SAVE) {
Vector2f mouse(Mouse::getPosition(window));
Event event;
while (window.pollEvent(event)) {
if (event.type == Event::KeyReleased && event.key.code == Keyboard::Escape) {
state = MGAME;
}
else if (text[0].getGlobalBounds().contains(mouse) && event.type == Event::MouseButtonReleased
&& event.key.code == Mouse::Left) {
cout << "save 1" << endl;
save.open("Data/Save_1.txt", ios::in | ios::out | ios::trunc);
save << "PlayerHP: " << player->gethp() << "\n";
save << "CurrentLevel: " << player->getcurrentLevel() << "\n";
save << "CurrentEq: " << player->getcurrentweapon()->getName() << " " << player->getcurrentarmor()->getName() << "\n";
text[0].setString("Save 1");
}
else if (text[1].getGlobalBounds().contains(mouse) && event.type == Event::MouseButtonReleased
&& event.key.code == Mouse::Left) {
cout << "save 2" << endl;
save1.open("Data/Save_2.txt", ios::in | ios::out);
save1 << "PlayerHP: " << player->gethp() << "\n";
save1 << "CurrentLevel: " << player->getcurrentLevel() << "\n";
save1 << "CurrentEq: " << player->getcurrentweapon()->getName() << " " << player->getcurrentarmor()->getName() << "\n";
text[1].setString("Save 2");
}
else if (text[2].getGlobalBounds().contains(mouse) && event.type == Event::MouseButtonReleased
&& event.key.code == Mouse::Left) {
cout << "save 3" << endl;
save2.open("Data/Save_3.txt", ios::in | ios::out);
save2 << "PlayerHP: " << player->gethp() << "\n";
save2 << "CurrentLevel: " << player->getcurrentLevel() << "\n";
save2 << "CurrentEq: " << player->getcurrentweapon()->getName() << " " << player->getcurrentarmor()->getName() << "\n";
text[2].setString("Save 3");
}
else if (text[3].getGlobalBounds().contains(mouse) && event.type == Event::MouseButtonReleased
&& event.key.code == Mouse::Left) {
state = MGAME;
}
for (auto &i : text) {
if (i.getGlobalBounds().contains(mouse))
i.setFillColor(Color::Blue);
else i.setFillColor(Color::Red);
}
}
window.clear();
window.setView(viewMenu);
window.draw(background);
window.draw(title);
for (auto i : text)
window.draw(i);
window.display();
}
save.close();
save1.close();
save2.close();
}
Cześć, potrzebuję małej pomocy, otóż napisałem sobie tak kod do prostego zapisu stanu gry, i chciałbym żeby to działało dla trzech plików, aktualnie tylko ten pierwszy się poprawnie zapisuje, w te dwa kolejne nie wiem czemu nie mogę zapisać :/ (w ogóle mi się plik nie tworzy o to chodzi), i pytanko też mam dlaczego też to zapisywanie działa jak wczęśniej dam np. cout << "COŚ" << endl;