oen432 Temat założony przez niniejszego użytkownika |
Zastąpienie konsoli » 2014-11-07 14:38:30 Witam,
Chciałbym zastąpić konsolę czymś podobnym ale żeby była możliwość używania polskich znaków. No i zmianę tła na jaki się chce a nie ograniczony jak to w przypadku DOS'a. Ktoś coś poradzi? Jestem początkowym programistą i nie za bardzo w tych sprawach się orientuję. |
|
pekfos |
» 2014-11-07 14:43:04 Dowolna biblioteka graficzna. |
|
oen432 Temat założony przez niniejszego użytkownika |
» 2014-11-07 14:45:53 Ok... Jak wcześniej wspomniałem, jestem początkujący, nie za bardzo mi pomogła informacja o takiej bibliotece. Daj mi na przykład użycie SFML. Czego będę potrzebował do działania? |
|
pekfos |
» 2014-11-07 14:57:26 Ok... Jak wcześniej wspomniałem, jestem początkujący |
Wykonanie tego, czego oczekujesz wykracza poza podstawy programowania. Nie da się w żaden łatwy i przyjemny sposób zrobić sobie 'lepszej konsoli' w miejsce starej. Standardową konsolę możesz co najwyżej wyłączyć, a nowe lepsze okno musisz sobie sam zrobić. Choćby w SFML. |
|
michal11 |
» 2014-11-07 17:00:00 Do wyświetlania polskich znaków w konsoli wystarczy wstring (chyba trzeba mieć jeszcze ustawione odpowiednie kodowanie w konsoli). Zmniane tła można zrobić w ustawieniach konsoli, lub korzystając z windows.h. |
|
oen432 Temat założony przez niniejszego użytkownika |
» 2014-11-07 18:54:16 Dobra, pobawiłem się sam itp. Okno jest, ale nie tak jak trzeba bowiem się zawiesza po kompilacji. Wszystko to przez funkcję "walka". Gdy ją usunę to pojawia się czarne okno jak należy. #include <SFML/Graphics.hpp> #include <conio.h> #include <ctime> #include <iostream>
int hp_przeciwnik; int hp_postac;
int damage_postac; int damage_przeciwnik;
void walka() { srand(time(0));
const std::string bronLista[6] = { "mieczem", "reka", "noga", "glowa", "lokciem", "kolanem" }; const std::string bronListap[6] = { "mieczem", "reka", "noga", "glowa", "lokciem", "kolanem" };
hp_przeciwnik = 100; hp_postac = 100; damage_postac = 1; damage_przeciwnik = 1;
bool petla = false;
int opcja; bool obrona = false; bool atak = true; while(!petla) { std::string bron = bronLista[rand() % 6]; std::string bronp = bronListap[rand() % 6]; std::cout << "Twoja tura, co robisz?" << std::endl; std::cout << "[1] ATAK" << std::endl; std::cout << "[2] OBRONA" << std::endl; std::cin >> opcja; switch(opcja) { case 1: hp_przeciwnik -= damage_postac; std::cout << "Zaatakowales " << bron << " i zadales " << damage_postac << " obrazen" << std::endl; std::cout << "Zycie przeciwnika: " << hp_przeciwnik << std::endl; break;
case 2: obrona = true; break;
} std::cout << "\n"; std::cout << "Tura przeciwnika" << std::endl;
if(obrona) { obrona = false; std::cout << "Obroniles sie przed atakiem przeciwnika"; std::cout << "\n" << "\n"; } else { std::cout << "Przeciwnik zaatakowal Cie " << bronp << " zadajac " << damage_przeciwnik << " obrazen"; std::cout << "\n" << "\n"; } } }
int main() { sf::Window window(sf::VideoMode(800, 600), "Gra RPG");
while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); }
walka(); window.clear; window.display(); }
return 0; }
|
|
pekfos |
» 2014-11-07 19:28:32 To w ogóle tak nie działa. SFML to nie jest gotowy substytut konsoli. Zapoznaj się z kursem. |
|
oen432 Temat założony przez niniejszego użytkownika |
» 2014-11-07 19:34:12 Tego się obawiałem. No nic, wychodzi na to że muszę się jeszcze podszkolić żeby taki efekt osiągnąć. To jeszcze pytanie, zrobienie okna i przycisków w nim które wywołują to co mam w case 1 i 2 jest łatwiejszą sprawą? |
|
« 1 » 2 |