未声明 [​​=10=] 存在于 Header,但未在 Class 来源中识别

Undeclared Identifier-Declarations Present In Header, But Unidentified In Class Source

所以,我遇到了一个可能非常简单的问题,但我似乎无法弄清楚是什么原因造成的。

我有一个名为 "Game" 的 C++ class,由 Game.h 中的 class 声明组成 和 Game.cpp.

中的源定义

我已将 "Game.h" 包含在我的 "Game.cpp" 中,但由于某些原因 Visual Studio 似乎无法识别 Game.h 中的 class 声明。

我将不胜感激任何帮助我试图弄清楚为什么会这样,以及为什么我会收到以下错误: 'MyCharacter' : undeclared identifier'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

删节Game.cpp

#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;

        }
}

完整代码可以在这里找到: http://pastebin.com/x6KhDxgL

提前感谢您对此提供的任何帮助。

尝试

int Game::Run()

而不是

int Run()

在Game.cpp中,HandleKeyPressed也一样,因为是Gameclass的方法。根据您的 Character.h,您可能还需要初始化 MyCharacter

void HandleKeyPressed(sf::Keyboard::Key PressedKey){

在Game.cpp应该是

void Game::HandleKeyPressed(sf::Keyboard::Key PressedKey){

与 int 相同 运行()