[SFML] Globalny obiekt sf::Window
Ostatnio zmodyfikowano 2012-09-05 20:47
diego997 Temat założony przez niniejszego użytkownika |
[SFML] Globalny obiekt sf::Window » 2012-09-04 20:57:08 Cześć znacie jakiś sposób na to aby obiekt sf::Window był widoczny w innych klasach bez konieczności podawania go jako parametr, czyli bez takiego czegoś: class _Player { public: void draw( sf::Window & ); }
int main() { sf::Window Window; Player.draw( Window ); }
|
|
akwes |
» 2012-09-04 20:59:07 No to trzeba zrobić z tego obiekt globalny i tyle :P i inkludować wszędzie gdzie potrzebny.
Ewentualnie zrobić sobie jakąś globalną klasę z wszelakiej maści informacjami i między innymi tam wpakować wskaźnik. |
|
waxx |
» 2012-09-04 21:00:22 ja trzymam go w singletonie |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-09-04 21:02:40 Czyli zrobic go jako globalny i do innego naglówku dodawać include "Main.cpp" ;d ? |
|
akwes |
» 2012-09-04 21:10:01 |
|
Mrovqa |
» 2012-09-04 21:17:34 @diego997 zapamiętaj - nigdy nie include'uj plików .c/.cpp/etc. Jeżeli jesteś do tego zmuszony (choć zawsze da się to uniknąć) - źle zaprojektowałeś/zorganizowałeś projekt. Tak poza tym include'owanie tego jest bezsensem. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-09-04 21:43:09 Czyli jeżeli zrobie zmienną globalną sf::Window Window w main.cpp to ona będzie widoczna też w innych plikach nagłówkowych ? Wiem że w symfonii było cos takiego jak extern ale nie do końca wiem jak użyć. A nie chcę tego robić metodą prób i błędów bo wiem że kiedyś podobnie robiłęm z nagłówkami niby działało ale niepoprawnie. Robię w ten sposób i nie działa
extern sf::Window Window;
class _Player { sf::RectangleShape Shape; public: void draw() { Window.draw( Shape ); } };
#include "Player.h" extern sf::Window Window; int main() { _Player Player; Player.draw(); }
|
|
ison |
» 2012-09-04 22:17:12 zrób sobie global.hpp #ifndef GLOBAL_HPP #define GLOBAL_HPP
#include <SFML/Graphics.hpp>
extern sf::Window Window;
#endif
i global.cpp #include "global.hpp"
sf::Window Window;
i dołącz global.hpp we wszystkich plikach, w których chcesz mieć Window |
|
« 1 » 2 |