我正在尝试创建一个包含点基元的struct
以及一个绘制它的方法。但是,在方法之外声明sf::VertexArray
似乎不起作用。在一个方法中完全相同的声明完美无缺。这里是代码示例和错误。 SFML版本2.1类中的VertexArray声明
编辑:在这两种情况下都使用using namespace std;
。
作品:
struct Point
{
int dot_x, dot_y;
sf::Color dot_color;
Point (int x = 50, int y = 50, sf::Color color = sf::Color::Green) {
dot_color = color;
dot_x = x;
dot_y = y;
}
virtual void draw() {
sf::VertexArray dot(sf::Points, 1);
dot[0].position = sf::Vector2f(dot_x,dot_y);
dot[0].color = dot_color;
window.draw(dot);
}
};
是否不工作:
struct Point {
sf::VertexArray dot(sf::Points, 1);
Point (int x = 50, int y = 50, sf::Color color = sf::Color::Green) {
dot[0].position = sf::Vector2f(x,y);
dot[0].color = color;
}
virtual void draw() {
window.draw(dot);
}
};
错误(所有指着VertexArray声明字符串):
E:\CodeBlocks\Labs\sem3\sfml1\main.cpp|64|error: 'sf::Points' is not a type|
E:\CodeBlocks\Labs\sem3\sfml1\main.cpp|64|error: expected identifier before numeric constant|
E:\CodeBlocks\Labs\sem3\sfml1\main.cpp|64|error: expected ',' or '...' before numeric constant|
你能给一个指针请,这些线路实际上是'的main.cpp | 64 |'?你可能想错过一些额外的头文件吗? – 2014-10-16 21:21:36
'sf :: VertexArray dot(sf :: Points,1);'在非工作版本中是有问题的行。如果我错过了标题,我认为该程序不适用于任何一种变体。 – fwiffo 2014-10-16 21:22:58