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

[SFML 2.x] Syntax error missing ; before *

Ostatnio zmodyfikowano 2016-03-24 18:48
Autor Wiadomość
oigi333
Temat założony przez niniejszego użytkownika
[SFML 2.x] Syntax error missing ; before *
» 2016-03-24 13:00:17
Witam
Piszę grę dla kolegi i pojawiają się takie problemy:

error C2039: 'currentgs' : is not a member of 'Game'
error C2143: syntax error : missing ';' before '*'
error C2143: syntax error : missing ';' before '*'
error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Game.cpp:
C/C++
#include <SFML/Graphics.hpp>
#include <cmath>

#include "Global.h"
#include "Menu.h"

sf::RenderWindow okno( sf::VideoMode( 800, 600, 32 ), "Kometa Marus" );


int main()
{
   
    Game game;
    game.currentgs = new Menu;
    game.loop();
    return 0;
}
Game.h:
C/C++
#pragma once
#include "Gamestate.h"
class Game
{
   
    sf::RenderWindow okno;
public:
    Gamestate * currentgs;
   
    Game( void );
    ~Game( void );
    void loop();
   
};
Game.cpp:
C/C++
#include "Game.h"


Game::Game( void )
{
}


Game::~Game( void )
{
}

void Game::loop()
{
    while( okno.isOpen() )
    {
        sf::Event zdarzenie;
        while( okno.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
                 okno.close();
           
        }
        currentgs->show( okno );
        okno.clear( sf::Color( 255, 0, 0 ) ); //to tak tymczasowo
        okno.display();
    }
}
Gamestate.h:
C/C++
#pragma once
#include <SFML/Graphics.hpp>
#include "Global.h"

class Game;

class Gamestate
{
   
public:
    Gamestate( void );
    virtual ~Gamestate( void );
   
    virtual void show( sf::RenderWindow & mokno ) = 0;
    void change( Gamestate & game );
};
Gamestate.cpp
C/C++
#include "Gamestate.h"


Gamestate::Gamestate( void )
{
}


Gamestate::~Gamestate( void )
{
}
void Gamestate::change( Gamestate & game )
{
    ;
}
Menu.h:
C/C++
#pragma once
#include <SFML/Graphics.hpp>
#include "Global.h"


class Menu
    : public Gamestate
{
public:
   
    Menu( void );
    ~Menu( void );
    void show( sf::RenderWindow & mokno );
   
};
Menu.cpp
C/C++
#include "Menu.h"


Menu::Menu( void )
{
}


Menu::~Menu( void )
{
}
void Menu::show( sf::RenderWindow & mokno )
{
   
}
Global.h
C/C++
#include "Gamestate.h"
#include "Game.h"
#include <SFML/Graphics.hpp> //Tu mają być wszystkie tekstury i spitrity

P-146495
michal11
» 2016-03-24 15:17:45
Wywal
class Game;
 z Gamestate.h i sprawdź czy zadziała, po co to tam w ogóle jest ?
P-146515
oigi333
Temat założony przez niniejszego użytkownika
» 2016-03-24 17:14:43
To samo
P-146517
michal11
» 2016-03-24 18:29:20
Ok, wszystko przez plik Global, stworzyłeś cykliczną zależność pomiędzy Game i Gamestate jedna nie może być skompilowana dopóki druga nie jest ale druga nie może być ponieważ wymaga pierwszej do skompilowania, usuń plik Global, popraw include'y i będzie śmigać.
P-146521
oigi333
Temat założony przez niniejszego użytkownika
» 2016-03-24 18:34:52
Gdzie które #includy?
P-146522
oigi333
Temat założony przez niniejszego użytkownika
» 2016-03-24 18:48:14
Okej wszystko działa dziękuje
P-146523
« 1 »
  Strona 1 z 1