2015-08-15 67 views
1

我想在SFML库中创建简单的形状,但我无法弄清楚如何在多个文件中共享项目。我知道怎么也得样子,但我不知道为什么这不工作错误C2248:'sf :: NonCopyable :: NonCopyable'

主要文件:

#include <iostream> 
#include <SFML/Graphics.hpp> 
#include "Ball.cpp" 

using namespace std; 
using namespace sf; 

int main() 
{ 
    RenderWindow win(VideoMode(800, 800), L"Rozdział 1"); 

    while (win.isOpen()) 
    { 
     win.clear(Color::White); 
     Event e; 
     while (win.pollEvent(e)) 
     { 
      if (e.type == Event::Closed) 
       win.close();  
     } 

     Ball ball(win); 
     win.display(); 
    } 
} 

和ball.cpp

#include <iostream> 
#include <SFML/Graphics.hpp> 

using namespace std; 
using namespace sf; 
class Ball 
{ 

public: Ball(RenderWindow win) 
{ 
    CircleShape circle(50); 
    circle.setPosition(0, 0); 
    circle.setOutlineColor(Color::Red); 
    circle.setOutlineThickness(2); 
    Texture texture; 
    if (!texture.loadFromFile("textura.png")) 
     cerr << "Nie można załadować grafiki\n"; 

    circle.setTexture(&texture); 

    win.draw(circle); 
} 
}; 

我必须在这个球的创建名单,我在C++中新建,我只用Java创建项目,但首先我想知道如何共享此项目

+1

[SFML在通过类初始化窗口时给出NonCopyable错误]的可能重复(http://stackoverflow.com/questions/14150237/sfml-giving-noncopyable-error-when-initializing-a-window-via-class ) – Hiura

+0

Simillar,但不是这样,它不能解决我的问题 –

回答

0

您通过值sf::RenderWindow,因此它试图创建副本,但是sf::RenderWindow类是不可复制的,如错误消息所示。

通过引用或更好地从sf::Drawable推导出Ball类并实施draw()函数。

相关问题