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

[SFML 2.0] Białe, niewidoczne okno

Ostatnio zmodyfikowano 2013-04-15 20:58
Autor Wiadomość
bingo009
Temat założony przez niniejszego użytkownika
[SFML 2.0] Białe, niewidoczne okno
» 2013-04-11 21:39:50
Witam was serdecznie, piszę sobię prostą grę na refleks i utknąłem właściwie na początku. Najpierw pliki"
Headers.h
C/C++
//Standard C++ Headers
#include <iostream>
#include <ctime>

//SFML2 Headers
#include <SFML/Graphics.hpp>
#include <SFML/Window/Keyboard.hpp>

//Game Headers
#include "Game.h"

//Namespaces
using namespace std;
using namespace sf;

Game.h:
C/C++
#ifndef GAME_H
#define GAME_H

class Game
    : public sf::RenderWindow
{
public:
    Game();
    int StartGame();
    static Game & returnInstance();
};

#endif // GAME_H

main.cpp:
C/C++
#include "Headers.h"

int main()
{
    return Game::returnInstance().StartGame();
}

Game.cpp:
C/C++
#include "Headers.h"

Game::Game()
    : RenderWindow( VideoMode( 1024, 1024, 32 ), "Reflect Game" )
{ }

Game & Game::returnInstance()
{
    static Game instance;
    return instance;
}

int Game::StartGame()
{
    Event event;
   
    CircleShape shape( 100.f );
    shape.setFillColor( sf::Color::Green );
   
    while( isOpen() )
    {
        while( pollEvent( event ) )
        {
            if( event.type == Event::Closed )
                 close();
           
            if( event.type == Event::KeyPressed && event.key.code == Keyboard::Escape )
                 close();
           
        }
        clear();
        draw( shape );
        display();
    }
    return 0;
}

Otóż po uruchomieniu gry pojawia się konsola, na pasku zadań jest widoczne inne okno, ale jest jakby zminimalizowane, nie mogę go zmaksymalizować a w podglądzie jest tylko białe tło. Pętla główna działa, w miejsce rysowania koła dałem funkcję cout i konsola pokazywała wyniki tej funkcji. Ten sam kod działał bez zarzutu w VS 2010, przepisywałem go właściwie. Kompilator MinGW najnowszy, biblioteka SFML skompilowana samodzielne ze źródeł, także najnowsza, pobrana z repozytorium git. Nie mam pojęcia o co może chodzić, proszę więc o pomoc.
P-80401
hincu
» 2013-04-13 20:14:55
smigaj na forum sfml i zapoznaj sie z dokumentacja lepiej
P-80519
bingo009
Temat założony przez niniejszego użytkownika
» 2013-04-14 20:38:15
Z dokumentacją się zapoznaje, ale i tak nie widze nic złego w tym kodzie. Tym bardziej, że śmigał na VS2010.
P-80572
pekfos
» 2013-04-14 20:42:18
Po co dziedziczysz po sf::RenderWindow? Spróbuj zmienić rozdzielczość ekranu.
P-80575
bingo009
Temat założony przez niniejszego użytkownika
» 2013-04-15 00:15:03
Faktycznie, problemem była niestandardowa rozdzielczość. Po zmianie na jakąś standardową(np. 1024x768) program ruszył. A co do dziedziczenia, to podlukałem to w jakimś kodzie i tak jakoś sam zacząłem tak robić. Jeżeli to źle i lepiej byłoby inaczej, to proszę o oświecenie, dopiero się uczę programować obiektowo, wcześniej tylko było strukturalnie i przez to ciężko mi idzie na razie pojmowanie OOP.
P-80582
pekfos
» 2013-04-15 14:09:03
A co do dziedziczenia, to podlukałem to w jakimś kodzie i tak jakoś sam zacząłem tak robić.
Pewnie ten kod dotyczył modyfikowania/rozszerzania sf::RenderWindow, a nie tworzenia czegoś zupełnie innego (jak w twoim kodzie). Powinieneś raczej użyć kompozycji (definiujesz obiekt sf::RenderWindow w klasie), chociaż dziedziczenie też jest poprawne (ale może prowadzić do małych komplikacji w kodzie).
P-80588
bingo009
Temat założony przez niniejszego użytkownika
» 2013-04-15 20:58:00
Bynajmniej w tamtym kodzie także chodziło o napisanie gry. Ale żeby nie zaśmiecać, założe potem drugi temat, a tą grę dokończę tym sposobem. Dziękuję i pozdrawiam, zamykam temat.
P-80626
« 1 »
  Strona 1 z 1