So, I'm having what is likely a pretty simple problem, but I can't seem to figure out what is causing it.
I have a C++ class called "Game" consisting of a class declaration in Game.h and a source definition in Game.cpp.
I have included "Game.h" in my "Game.cpp", but for some reason Visual Studio doesn't seem to recognize the class declarations within Game.h.
I'd appreciate any help I could get trying to figure out why this is the case, and why I am getting the following errors:
'MyCharacter' : undeclared identifier
and 'HandleKeyPressed' : identifier not found
.
Game.h:
------------------------------------------------------------------------------------------------------------------
#pragma once
#ifndef Game_Header
#define Game_Header
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include "Character.h"
#include "FloorPlatform.h"
class Game
{
public:
Game();
~Game();
int Run();
void HandleKeyPressed(sf::Keyboard::Key);
Character MyCharacter;
};
#endif // !Game_Header
#include "Game.h"
Game::Game()
{
}
Game::~Game()
{
}
int Run(){
sf::RenderWindow MainGameWindow(sf::VideoMode::getDesktopMode(), "A Test Game");
//Start Game Loop
while (MainGameWindow.isOpen()){
while (MainGameWindow.pollEvent(event)){
//Handle some other events here...
if (event.type == sf::Event::KeyPressed){
HandleKeyPressed(event.key.code);
}
}
MainGameWindow.clear(sf::Color::White);
MyCharacter.Instance.Circle.setPosition(MyCharacter.PlayerLocation);
MainGameWindow.draw(MyCharacter.Instance.Circle);
MainGameWindow.display();
}
return 0;
}
void HandleKeyPressed(sf::Keyboard::Key PressedKey){
switch (PressedKey)
{
case sf::Keyboard::A:
MyCharacter.PlayerLocation.x -= 16;
break;
}
}
Full code can be found here: http://pastebin.com/x6KhDxgL
Thanks in advance for any help I can get with this.
Try
int Game::Run()
instead of
int Run()
in Game.cpp, the same for HandleKeyPressed
, because it's the method of the Game
class. Depending on your Character.h
you may need to initialize MyCharacter
, too.