[SFML] Globalny obiekt sf::Window
Ostatnio zmodyfikowano 2012-09-05 20:47
diego997 Temat założony przez niniejszego użytkownika |
» 2012-09-04 22:19:53 dzięki ale jak tak robię to wykakuje błąd po skompilowaniu Unhandled exception...
|
|
ison |
» 2012-09-04 22:29:09 to zdebuguj |
|
yoogi |
» 2012-09-05 16:37:53 Nie wiem czy o to ci chodzi, ale zrób sobie wskaźnik globalny i potem zalokuj dane; sf::Window w;
... w = new Window( sf::VideoMode( 640, 480 ) );
|
|
RazzorFlame |
» 2012-09-05 17:57:56 LOL po co? Czaj #include "main.h"
sf::Window window;
int main() { window.Create( sf::VideoMode( 800, 600, 32 ), "Okienko" ); }
#include <SFML/Graphics.hpp>
extern sf::Window window;
|
|
akwes |
» 2012-09-05 19:04:21 @yoogi nie po co wskaźnik, skoro może być zwykła zmienna. (No i w kodzie Ci wcięło gwiazdkę ;>) @RazzorFlame NIE! //Mozesz juz te "window" wykorzystywać
|
Nie, nie może, ponieważ obiekt zyska swoje wartości dopiero w funkcji main. A jeżeli go użyje w konstruktorze (albo innej funkcji) klasy, i konstruktor (albo inna funkcja) będzie wywołany przed linijką window.Create( sf::VideoMode( 800, 600, 32 ), "Okienko" ); to otrzyma właśnie błąd albo w dobrym przypadku będzie rzucony wyjątek. I jeżeli przyjdzie mu zrobić inny obiekt globalny. Jeżeli ta klasa będzie próbować odczytać chociażby rozmiar okna, to będzie bagno. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-09-05 20:25:49 Sprawdzałem wasz propozycje i tak jak pisze @awkes za każdym razem wyskakuje błąd.
Mam jeszcze pytanie jak tworzę zmienną globalną to nie ma znaczenia czy jest ona przed include "Player.h" czy za ? |
|
waxx |
» 2012-09-05 20:30:07 ale sie pierdzielicie class CDrawInterface { public: sf::RenderWindow Window; CDrawInterface() { } static CDrawInterface * Instance() { if( !m_instance ) m_instance = new CDrawInterface; return m_instance; } private: static CDrawInterface * m_instance; };
CDrawInterface * CDrawInterface::m_instance = 0;
#include "CDrawInterface.h"
void CPlayer::Draw() { CDrawInterface::Instance()->Window.Draw( sprite ); }
ofc trzeba tam gdzies indziej jeszcze stworzyc to okno w inicie gry albo co :P |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-09-05 20:47:55 dzieki waxx dziala |
|
1 « 2 » |