Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML, C++] error: 'event' was not declared in this scope|

Ostatnio zmodyfikowano 2013-09-11 18:43
Autor Wiadomość
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:
C/C++
#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();
        } //while
        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();
    } //while
    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
P-91908
oputyk
» 2013-09-11 18:34:36
Przecież zmienna okno i event nie są znane w funkcji...
P-91909
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.
P-91910
pekfos
» 2013-09-11 18:35:51
P-91911
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.
P-91912
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
P-91914
« 1 »
  Strona 1 z 1