[SFML, C++] error: 'event' was not declared in this scope|
Ostatnio zmodyfikowano 2013-09-11 18:43
Kopczak1995 Temat założony przez niniejszego użytkownika |
[SFML, C++] error: 'event' was not declared in this scope| » 2013-09-11 18:29:44 Witam. Cóż, kiedy pierwszy raz produkowałem coś w SFML'u to robiłem mały programik i jakoś nie myślałem o uporządkowaniu tego, bo i tak było wszystko widać bez większego wysiłku. Tym razem jednak zdecydowałem się zrobić coś większego, więc zdecydowałem się to w miarę przyzwoicie ogarnąć za pomocą kilku zgrabniejszych funkcji. No i pojawił się problem... Oto kod: #include <SFML/Graphics.hpp> #include <cmath>
void ZamykanieOkna();
int main() { sf::RenderWindow okno( sf::VideoMode::getDesktopMode(), "Biologia - zadanie", sf::Style::Fullscreen ); sf::Clock stoper; while( okno.isOpen() ) { sf::Event event; while( okno.pollEvent( event ) ) { ZamykanieOkna(); } okno.clear( sf::Color::Green ); sf::CircleShape ksztalt( std::sin( stoper.getElapsedTime().asSeconds() ) * okno.getSize().y / 8 + okno.getSize().y / 3, 100 ); ksztalt.setOrigin( sf::Vector2f( ksztalt.getRadius(), ksztalt.getRadius() ) ); ksztalt.setPosition( okno.getSize().x / 2.0f, okno.getSize().y / 2.0f ); ksztalt.setFillColor( sf::Color::Red ); okno.draw( ksztalt ); okno.display(); } return 0; }
void ZamykanieOkna() { if( event.type == sf::Event::Closed ) okno.close(); if( event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape ) okno.close(); }
Fakt, program nie powala ale najpierw muszę sobie przypomnieć co i jak, bo od 2 miechów nie tykałem programowania :P No dobra, jeszcze log kompilacji: ||In function 'void ZamykanieOkna()':| |32|error: 'event' was not declared in this scope| |33|error: 'okno' was not declared in this scope| |34|error: 'event' was not declared in this scope| |35|error: 'okno' was not declared in this scope| ||=== Build finished: 4 errors, 0 warnings (0 minutes, 1 seconds) ===|
I teraz od razu pytanie czy ma to jakiś związek z programowaniem obiektowym. Wiem, że SFML jest w ten sposób zorientowany, lecz na razie jeszcze nie ogarniam tego tematu, więc jeżeli moje obawy się potwierdzają to jak można ominąć ten problem bez głębszej wiedzy na ten temat. No jest jeszcze opcja, że popełniłem (znowu -.-) jakiś durny błąd. W takim razie liczę na wyrozumiałość :P @Down Hmmm... Faktycznie... Zaraz wracam :D |
|
oputyk |
» 2013-09-11 18:34:36 Przecież zmienna okno i event nie są znane w funkcji... |
|
DejaVu |
» 2013-09-11 18:35:06 Przecież błąd jasno informuje, że zmienna event jest nieznana... błąd ma mało wspólnego z SFML-em - raczej z podstawami programowania. Przekaż do funkcji tą zmienną poprzez argument. |
|
pekfos |
» 2013-09-11 18:35:51 |
|
kubawal |
» 2013-09-11 18:39:12 Zrób sobie klasę Game, która będzie obsługiwała całą grę. Wtedy w main() tylko tworzysz jej obiekt i nic więcej. |
|
Kopczak1995 Temat założony przez niniejszego użytkownika |
» 2013-09-11 18:43:19 @kubawal No właśnie tego się obawiałem :D Chyba nie ruszę się z miejsca bez minimalnego ogarnięcia obiektowości.
Cóż... W takim razie zamykam temat - idę się podszkolić w czarnej magii jaką są klasy :P |
|
« 1 » |