首页 > 解决方案 > 为什么我的头文件有标识符错误?

问题描述

我有一个使用 SDL2.0 和 C++ 的简单游戏项目。我认为我的代码很好,但是当我在 Visual Studio 2019 中构建它时,Game_Utils 头文件中出现 1 个语法错误,该文件具有使用 Enemy 变量作为参数的函数。我试图在 Enemy 标头中查找并解决问题,但没有任何效果。

有人可以解释一下为什么会出现这个错误吗?

我的存储库:https ://github.com/Lazy-NMT/Into-Jungle-backup.git

Game_Utils.h:

#ifndef GAME_UTILS_H_
#define GAME_UTILS_H_

#include "Game_Base.h"
#include "Enemy.h"

bool Init();

bool LoadMedia();

void Close();

void LogError(string msg, int error_code = SDL_ERROR);

int UpdateGameTime(int &time,int &speed);

bool AppearanceTime_1(const int& time, const int& enemy_speed);

bool AppearanceTime_2(const int& time, const int& enemy_speed);

bool CheckColission(SDL_Rect* currentClip, Enemy enemy);

#endif // !GAME_UTILS_H_

敌人.h:

#ifndef ENEMY_H_
#define ENEMY_H_

#include "Game_Base.h"
#include "LTexture.h"

#define ENEMY_HEIGHT 200

class Enemy
{
public:
    Enemy(int _type = 0);

    Enemy();

    ~Enemy();

    bool LoadFromFile(string path, SDL_Renderer* gRenderer);

    void Move(const int& acceleration);

    void Render(SDL_Renderer* gRenderer);

    int GetType();

    int GetSpeed(const int& acceleration);

    int GetPosX();

    int GetPosY();

    int GetWidth();

    int GetHeight();
private:
    int posX, posY;

    int eWidth, eHeight;

    int type;

    SDL_Texture *EnemyTexture;
};

LTexture.h:

#ifndef LTEXTURE_H_
#define LTEXTURE_H_

#include "Game_Base.h"
#include "Game_Utils.h"

class LTexture
{
public:
    LTexture();

    ~LTexture();

    void Free();

    bool LoadFromFile(string path, SDL_Renderer *gRenderer);

    void Render(int x, int y, SDL_Renderer* gRenderer, SDL_Rect* clip = nullptr);

    int GetWidth();

    int GetHeight();

private:
    SDL_Texture* mTexture;

    int mWidth;
    int mHeight;
};


#endif // !LTEXTURE_H_

标识符错误

标签: c++sdl-2

解决方案


推荐阅读