Okay, also ich habe mir wie gesagt ein kleines Framework geschrieben mit Klassen für Sprites, Text usw.
Um Sprites etc. zu rendern muss man ja folgendes tun:
|
C-/C++-Quelltext
|
1
2
|
sf::RenderWindow App (.....);
App.Draw(Sprite);
|
Da ich das Fenster namens App allerdings nicht in der Sprite Klasse erstelle kann ich nicht mehr so einfach darauf zugreifen, wenn ich
das Sprite rendern will. Also habe ich mir eine Funktion geschrieben, die so aussieht:
|
C-/C++-Quelltext
|
1
|
sf::RenderWindow GetRenderWindow () {return App;}
|
Wenn ich dann kompilieren will, erscheint allerdings folgender Fehler in allen Dateien, die irgendwie diese Funktion verwenden oder includen:
sfml-1.6\include\sfml\window\window.hpp(321): error C2248: "sf::NonCopyable::NonCopyable": Kein Zugriff auf private Member, dessen Deklaration in der sf::NonCopyable-Klasse erfolgte.
1> \sfml-1.6\include\sfml\system\noncopyable.hpp(57): Siehe Deklaration von 'sf::NonCopyable::NonCopyable'
1> \sfml-1.6\include\sfml\system\noncopyable.hpp(41): Siehe Deklaration von 'sf::NonCopyable'
1> Diese Diagnose trat in der vom Compiler generierten Funktion "sf::Window::Window(const sf::Window &)" auf.
Wenn ich die Funktion rausnehme, erscheint kein Fehler, allerdings kann ich dann natürlich nicht mehr darauf zugreifen.
Muss ich "App" global deklarieren, oder wie löse ich das Problem?
lg chaia