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

SFML - Wskaźnik na obiekt klasy sf::RenderWindow

Ostatnio zmodyfikowano 2016-04-21 22:51
Autor Wiadomość
Knayder
Temat założony przez niniejszego użytkownika
SFML - Wskaźnik na obiekt klasy sf::RenderWindow
» 2016-04-21 21:39:06
Witam, chciałem napisać prostą gierkę, jednak już na start mam problem. Próbowałem zrobić Klasę MainMenu, a w niej wskaźnik na obiekt klasy sf::RenderWindow, cobym mógł wyświetlać coś w oknie. Problem pojawił się jednak taki, że nie mogłem wywołać funkcji tej klasy, na wskaźniku.
Tutaj pliki:
main.cpp
C/C++
#include <SFML/Graphics.hpp>
#include <iostream>
#include "mainMenu.cpp"

using namespace std;

sf::RenderWindow window;
sf::ContextSettings settings;

MainMenu mainMenu;



int main() {
    settings.antialiasingLevel = 8;
    window.create( sf::VideoMode( 800, 800, 32 ), "Sky Force", sf::Style::Default, settings );
    mainMenu.create( & window );
    mainMenu.run();
}
mainMenu.cpp
C/C++
#include <SFML/Graphics.hpp>
#include <iostream>

using namespace std;


class MainMenu {
public:
    sf::RenderWindow * window;
    bool ableToEnd;
    MainMenu() {
        cout << "Menu" << endl;
        this->ableToEnd = false;
    }
    void create( sf::RenderWindow * window ) {
        this->window = window;
    }
    int run() {
        while( !ableToEnd ) {
            input();
           
            * window.clear( sf::Color( 255, 0, 255 ) ); // CHODZI MI O TE FUNKCJE !!!!!!
            * window.display();
        }
    }
   
    void input() {
        sf::Event event;
        while( * window.pollEvent( event ) ) {
            if( event.type == sf::Event::Closed )
                 * window.close();
           
        }
    }
   
};
P-147516
Gibas11
» 2016-04-21 21:43:12
C/C++
* window.clear( sf::Color( 255, 0, 255 ) );
Znaczy tyle co to:
C/C++
*( window.clear( sf::Color( 255, 0, 255 ) ) );

A chyba nie o to chodziło. ;-)

Użyj operatora wyłuskania (
->
) albo nawiasów:
C/C++
window->clear( sf::Color( 255, 0, 255 ) );
Albo
C/C++
( * window ).clear( sf::Color( 255, 0, 255 ) );
P-147518
Knayder
Temat założony przez niniejszego użytkownika
» 2016-04-21 21:49:21
Rewelacja :D, Zadziałało:
C/C++
( * window ).clear( sf::Color( 255, 0, 255 ) );
( * window ).display();
Sam nigdy bym na to nie wpadł, dziękuję bardzo :D
P-147521
michal11
» 2016-04-21 22:51:56
Lepszym rozwiązaniem jest używanie operatora -> niż dereferencja wskaźnika.
P-147528
« 1 »
  Strona 1 z 1