[C++] Aplikacje okienkowe - jakie biblioteki?
Ostatnio zmodyfikowano 2012-10-13 00:48
ubalf Temat założony przez niniejszego użytkownika |
[C++] Aplikacje okienkowe - jakie biblioteki? » 2012-10-13 00:03:11 Witam, jestem tu dość nowy. Obecnie przerobiłem 3 poziomy kursu C++. Za niedługo będę potrzebował stworzyć aplikację do jednej z nowych gier MMO - kalkulator punktów umiejętności. Będzie musiała być to aplikacja okienkowa, w której posiadamy określony zakres punktów i przydzielamy je do umiejętności (klikając na obrazki) tym samym odblokowując kolejne. Niestety z powodu mojej małej wiedzy nie potrafię określić jakich bibliotek będę potrzebował. Podstawowe funkcje, które będą mi potrzebne to: - możliwość stworzenia okienka i GUI - obsługa myszy i klawiatury - dodawanie grafiki (obrazki umiejętności) - zmienianie wartości zmiennych przy klikaniu na określona grafikę/w określonych obszarach - zakładki (zbiory umiejętności dla różnych klas pod różnymi zakładkami) - pokazywanie opisu umiejętności po najechaniu myszką na obrazek (najlepiej w prostokątnym dymku) - nałożenie liczb jako obecnego stanu dodanych punktów do danej umiejętności na jej obrazek (np. 0/3 1/3 itd.) - zamienienie kolorystyki obrazka na odcień szarości, kiedy umiejętność jest niedostępna (lub zmiana obrazka, szarość nałoże w gimpie) Nie wiem jak do tego się zabrać. Umie tylko pisać aplikacje konsolowe. Byłbym bardzo wdzięczny za jakiekolwiek rady. To owoce moich 2 godzin nauki (dość szybko się uczę): #include <iostream> #include <cstdlib> #include <ctime> #include <string> bool check( int rnumber, int rcounter, int rnumbers[] ) { if( rcounter == 1 ) return false; int repeat = 1; do { if( rnumber == rnumbers[ repeat ] ) return true; repeat++; } while( repeat < rcounter ); return false; } int main() { srand( time( NULL ) ); int program = 0; int id; bool checker = false; std::cout << "Programs:" << std::endl; switch( program ) { case 0: std::cout << "0: Author." << std::endl; case 1: std::cout << "1: Guess the number." << std::endl; case 2: std::cout << "2: Counting sum of all even numbers from 1 to 100." << std::endl; case 3: std::cout << "3: Drawing machine." << std::endl; case 4: std::cout << "4: Drawing without repetition." << std::endl; case 5: std::cout << "5: Multiplication table." << std::endl; case 6: std::cout << "6: Words separator." << std::endl; case 7: std::cout << "7: Text lines loader." << std::endl; program++; } std::cout << std::endl << "Enter ID of program which you want to use:" << std::endl; do { std::cin >> id; if( id < 0 || id > 7 ) { std::cout << "Program with that id doesn't exist!" << std::endl; } else { std::cout << "Launching..." << std::endl; checker = true; } } while( checker == false ); std::cout << std::endl << "Running: "; switch( id ) { case 0: std::cout << "Author." << std::endl; break; case 1: std::cout << "Guess the number." << std::endl; break; case 2: std::cout << "Counting sum of all even numbers from 1 to 100." << std::endl; break; case 3: std::cout << "Drawing machine." << std::endl; break; case 4: std::cout << "Drawing without repetition." << std::endl; break; case 5: std::cout << "Multiplication table." << std::endl; break; case 6: std::cout << "Words separator." << std::endl; break; case 7: std::cout << "Text lines loader." << std::endl; } std::cout << std::endl; if( id == 0 ) std::cout << "Jacob Pietras" << std::endl; if( id == 1 ) { bool correct = false; bool check; unsigned int input; int number =( rand() % 10 ) + 1; int shoots = 0; int errors = 0; std::cout << "Guess the number (from 1 to 10):" << std::endl; do { do { check = true; std::cin.clear(); std::cin.sync(); std::cin >> input; if( input < 1 ) check = false; if( input > 10 ) check = false; if( check == false ) { std::cout << "Only numbers from 1 to 10!" << std::endl; errors++; } } while( check == false ); if( input < number ) std::cout << "Too small." << std::endl; if( input > number ) std::cout << "Too big." << std::endl; if( input == number ) correct = true; shoots++; } while( correct == false ); std::cout << "Correct! " << std::endl << std::endl << "You shooted: " << shoots; if( shoots < 2 ) std::cout << " time."; if( shoots > 1 ) std::cout << " times."; std::cout << std::endl << "Errors: " << errors << "." << std::endl; } if( id == 2 ) { int numb = 1; int sum = 0; std::cout << "This application counts sum of all even numbers from 1 to 100." << std::endl; std::cout << std::endl; std::cout << "Counted numbers:" << std::endl; do { if( numb % 2 == 0 ) std::cout << numb << " "; numb++; } while( numb < 101 ); numb = 1; std::cout << std::endl; std::cout << std::endl; std::cout << "Sum:" << std::endl; do { if( numb % 2 == 0 ) { sum = sum + numb; } numb++; } while( numb < 101 ); std::cout << sum << std::endl; } if( id == 3 ) { int sum = 0; int temp; int numbers[ 999 ]; int counter = 1; std::cout << "Drawed numbers (from 4 to 10):" << std::endl; do { temp =( rand() % 7 ) + 4; numbers[ counter ] = temp; counter++; } while( counter < 1000 ); counter = 1; do { std::cout << numbers[ counter ] << " "; counter++; } while( counter < 1000 ); counter = 1; do { sum = sum + numbers[ counter ]; counter++; } while( counter < 1000 ); std::cout << std::endl << std::endl << "Sum of drawed numbers: " << sum << std::endl; } if( id == 4 ) { int counter = 1; int numbers[ 8 ]; int number; bool checker; std::cout << "Drawed numbers (from 1 to 10):" << std::endl; do { checker = false; do { number =( rand() % 10 ) + 1; if( check( number, counter, numbers ) == false ) checker = true; } while( checker == false ); std::cout << number << std::endl; numbers[ counter ] = number; counter++; } while( counter < 9 ); } if( id == 5 ) { int top = 1; int left = 1; for( int i = 1; i < 10; i++ ) { for( int i = 1; i < 10; i++ ) { std::cout << left * top << " "; top++; } std::cout << std::endl; top = 1; left++; } } if( id == 6 ) { std::string table[ 10 ]; table[ 1 ] = "First word:"; table[ 2 ] = "Second word:"; table[ 3 ] = "Third word:"; table[ 4 ] = "Fourth word:"; table[ 5 ] = "Fifth word:"; table[ 6 ] = "Sixth word:"; table[ 7 ] = "Seventh word:"; table[ 8 ] = "Eighth word:"; table[ 9 ] = "Ninth word:"; table[ 10 ] = "Tenth word:"; std::cout << "Enter ten words:" << std::endl << std::endl; for( int i = 1; i < 11; i++ ) { std::cout << table[ i ] << std::endl; std::cin >> table[ i ]; } std::cout << std::endl; std::cout << "Entered words separated with comas:" << std::endl; for( int i = 1; i < 10; i++ ) { std::cout << table[ i ] << ", "; } std::cout << table[ 10 ] << std::endl; } if( id == 7 ) { std::string name; std::cout << "Enter lne of text: "; std::cin.sync(); std::getline( std::cin, name ); std::cout << std::endl; std::cout << "You entered: " << name << std::endl; } return 0; } |
|
DejaVu |
» 2012-10-13 00:38:31 Normalnie chyba dodam rozdział "co dalej po kursie C++"... niestety 3 poziomy kursu C++ to stanowczo za mało. Zainwestuj w jakąś książkę do C++, a potem możesz poczytać albo o GTK+ albo o Qt (albo ostatecznie WinAPI ale raczej nazwałbym to strzałem w stopę) :) |
|
ubalf Temat założony przez niniejszego użytkownika |
» 2012-10-13 00:48:28 Ok, dzięki. Poczytam o GTK i zobaczę czy to mi wystarczy. |
|
« 1 » |