Problem z instalacją SFML
Ostatnio zmodyfikowano 2017-12-05 20:45
Corvette653 Temat założony przez niniejszego użytkownika |
Czy ktoś mógłby wkleić ten kod w swoim kompilatorze? » 2017-12-02 10:03:27 nie wiem co się stało jednak ten kod wyświetla u mnie białe okno konsoli... #include <SFML/Graphics.hpp>
using namespace sf;
int main() { RenderWindow oknoAplikacji( VideoMode( 1000, 600, 32 ), "Najtrudniejsza gra na swiecie" ); oknoAplikacji.clear( Color::Green ); while( oknoAplikacji.isOpen() ) { sf::Event zdarzenie; while( oknoAplikacji.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) oknoAplikacji.close(); if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape ) oknoAplikacji.close(); } oknoAplikacji.clear( Color::Green ); } return 0; }
Wydaje mi się że nie jest trudny do zrozumienia :) Jednak albo coś jest tutaj źle albo mam coś z kompilatorem Z góry dziękuje za sprawdzenie (: |
|
mateczek |
» 2017-12-02 11:59:46 Masz przykładowy kod u góry wątku i porównaj sobie oba i sam zobacz jakiej ważnej funkcji Ci brakuje!!! |
|
Corvette653 Temat założony przez niniejszego użytkownika |
nie rozumiem tego » 2017-12-02 20:40:57 czemu po prawie każdej pętli programu musi stać:
oknoAplikacji.display(); ( czy jak kto sobie to nazwie )
teraz moją główną pętlą programu jest :
while ( i != 0 )
lecz nadaj bez display aplikacja nie działa.
|
|
Corvette653 Temat założony przez niniejszego użytkownika |
coraz bliżej końca coraz więcej problemów :) » 2017-12-03 19:47:54 oto CZĘŚĆ mojego programu: if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape ) { do { oknoAplikacji.draw( wyszedles ); oknoAplikacji.draw( Tak ); oknoAplikacji.draw( Nie ); if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) { i = - 1; } } while( i == 1 );
Ma ona robić o to: jeśli użytkownik wciśnie esc { rób: // minimum 1 raz { rysuj obraz wyszedles rysuj obraz Tak rysuj obraz Nie jeśli użytkownik naciśnie lewy przycisk myszy przypisz -1 do i // zakończ pętle } dopóki i jest równe 1 } czyli jeśli użytkownik wciśnie esc rysuj te zdjęcia aż użytkownik wciśnie lpm jednak coś jest nie tak i program po wciśnięciu esc przestaje reagować na inne przyciski np strzałki które mam dalej ( to dobrze ) lecz nie rysuje moich obrazów oraz nie reaguje na lpm ( po wciśnięciu kilku przycisków wyświetla się okno windows: program przestał działać ) oczywiście ten tekst ma sprawdzać czy użytkownik na pewno chce wyjść z aplikacji lecz jest jeszcze nie dokończony. |
|
Luq |
» 2017-12-03 21:22:20 do { oknoAplikacji.draw( wyszedles ); oknoAplikacji.draw( Tak ); oknoAplikacji.draw( Nie ); if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) { i = - 1; } } while( i == 1 ); |
Program wchodzi w pętlę, w której nie pobiera kolejnych zdarzeń z kolejki, więc jak ma zareagować na wciśnięcie LPM? Bo nie wywołujesz metody display. |
|
Corvette653 Temat założony przez niniejszego użytkownika |
» 2017-12-04 18:35:55 faktycznie troche zawaliłem :) Lecz to również nie działa ( tzn całkiem dobrze ) do { oknoAplikacji.draw( wyszedles ); oknoAplikacji.draw( Tak ); oknoAplikacji.draw( Nie ); sf::Event zdarzenie; if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Left ) { i = 0; } oknoAplikacji.display(); } while( i == 1 );
program owszem rysuje już moje obrazy lecz nie reaguje na lpm ( ani nic innego ) EDIT: napisze to od razu :) warunkiem pętli nie będzie mogło być i == 1 ponieważ użytkownik będzie ustawiał i z 1 na 0 lub klikając nie ( u mnie to jest dosłownie anuluj ) pozostawi 1. Warunek tej pętli musi brzmieć while " nie wciśnięto TAK || nie wciśnięto NIE " |
|
mateczek |
» 2017-12-04 18:47:44 dalej nie pobierasz zdarzeń z kolejki while( oknoAplikacji.pollEvent( zdarzenie ) ) { } |
|
Corvette653 Temat założony przez niniejszego użytkownika |
troche lepiej musze zrozumieć niektóre funkce sfml » 2017-12-04 19:27:06 tak jak myślałem że .display tylko sprawdza czy okno jest otwarte i jeśli nie ma w pobliżu czegoś co musi wiedzieć co się dzieje z oknem to nie jest ono potrzebne tak myślałem że tutaj wystarczy Event dziękuje :) |
|
1 2 « 3 » 4 |