我正在使用 Visual C++ 2012 在我的简单 OpenGL 游戏中为 block 创建一个类,但遇到了一个奇怪的错误。这是完整的错误:
- 消息 - 错误 C1004:发现意外的文件结尾
- 文件- block.cpp
- 行- 27
- 列- 1
代码如下:
block.h
#pragma once
#include "agent.h"
#include <Engine2D/spritebatch.h>
class Block {
public:
Block(glm::vec2 dim, glm::vec4 uv, glm::vec2 pos, GLuint texture);
// Draws the block to the sprite batch
void draw(e2d::SpriteBatch& spriteBatch);
// Returns the position
glm::vec2 getPosition();
// Returns the size
glm::vec2 getSize();
private:
glm::vec2 _dim;
glm::vec4 _uv;
glm::vec2 _pos;
GLuint _texture;
};
block .cpp
#include "block.h"
Block::Block(glm::vec2 dim, glm::vec4 uv, glm::vec2 pos, GLuint texture) :
_dim(dim),
_uv(uv),
_pos(pos),
_texture(texture)
{}
void Block::draw(e2d::SpriteBatch& spriteBatch) {
spriteBatch.draw(glm::vec4(_pos.x, _pos.y, _dim.x, _dim.y), _uv, e2d::color(), 0.0f, _texture);
}
glm::vec2 Block::getPosition() {
return _pos;
}
glm::vec2 Block::getSize() {
return _dim;
}
// ERROR LINE
如果您发现问题或可以详细说明原因,我们将不胜感激。谢谢!
注意:
- Engine2D/spritebatch.h 是我创建的引擎的一部分。它只是简单地将对象绘制并渲染到屏幕上。此类与该问题无关。
- glm 命名空间用于 OpenGL 数学库。它包含有用的 vector 和矩阵类以及用于计算两点之间距离等内容的函数。
- 当我使用 e2d::color 时,它会创建一个内部包含 RGBA 颜色值的结构。它是我的引擎的一部分,它的默认构造函数将所有 RGBA 值设置为 255。
最佳答案
现在回过头来看,我发现了错误的原因。这是因为我包含了我的 agent.h 类并且从未对它做任何事情。糟糕!
关于c++ - 无法解决 "unexpected end-of-file found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938186/