Problema con Qt Creator
-
Buenas veran necesito ayuda con este problema:
Bueno la cosa es que para programar mi IDE favorito es QT Creator y estoy aprendiendo a usar SFML 2.1.
Cree un proyecto y agrege las librerias escribi codigo y de hecho funciono perfectamente 100% compatibilidad con SFML :D.
La cosa se puso fea al modularizar.
Separe el codigo en un header llamado Game.h y el correspondiente codigo fuente Game.cpp
Y el problema es que cuando construyo suelta que las variables que declare en el header Game.h no existe D:Aqui les doy el codigo para que tengan una mejor idea:
Este es el Game.h
@
#ifndef GAME_H
#define GAME_H
#include <SFML/Graphics.hpp>
#include <iostream>
using namespace std;
using namespace sf;class Game {
private:
RenderWindow ventana;
Event evento;bool isPLay {true}; bool presionar_A {false}; bool click_izquierdo {false};
private:
void inicializar();
void eventos();
void update();
void render();
void clear();public:
Game();
void run();};
#endif // GAME_H
@Y este el Game.cpp:
@
#include "Game.h"
#include <Game.h>
#include <iostream>
#include <SFML/Graphics.hpp>
using namespace std;
using namespace sf;Game::Game():ventana(VideoMode(800, 600),"Game") {
}
void Game::inicializar(){
ventana.setFramerateLimit(60);
ventana.setKeyRepeatEnabled(false);
}void Game::eventos() {
//Eventos
while (ventana.pollEvent(evento)){if (evento.type == Event::Closed){ isPlay = false; } if (evento.type == Event::KeyPressed && evento.key.code == Keyboard::A){ presionar_A = true; } if (evento.type == Event::MouseButtonPressed && evento.key.code == Mouse::Left){ click_izquierdo = true; } } }
void Game::update() {
if (presionar_A){ cout << "Lol A :v" <<endl; presionar_A = false; } if (click_izquierdo){ cout << "Lel click izquierdo :V" <<endl; click_izquierdo = false; }
}
void Game::render() {
ventana.clear(Color::Blue);
ventana.display();}
void Game::clear(){
ventana.close();
}void run(){
inicializar();while(isPlay){ eventos(); update(); render(); } clear();
}
@EL main:
@
#include "Game.h"
#include <SFML/Graphics.hpp>
#include <iostream>
#include <memory>
using namespace std;
using namespace sf;int main (){
shared_ptr<Game> Juego(new Game());
Juego -> run();
return 0;
}
@Notas:
Soy novato xP
Lo probe con qmake y cmake
Tiene algo de codigo en c++ 11
Funcionaba cuando tenia todo el codigo en el main.cppEste es el error: https://cloud.openmailbox.org/public.php?service=files&t=ba7ce9ced755f5a2736e982829c23581
Agradezco su ayuda
-
Linea 57 de Game.cpp, tiene que ser:
@void Game::run()@