Würde heri auch gerne mal eine Design Frage stellen!
Aus vielen 2D Frameworks kennt man sowas in der Art:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
class Image;
class Sprite
{
public:
Sprite(Image* texture);
void Draw(Window* wnd);
// ...
};
|
Der springenden Punkt ist. Image ist die Textur des Sprites. z.b. in SFML wird das wie oben gehandhabt. ich programmiere mit DirectX, denke aber in OGL wird es ähnlich sein (weswegen ich oben genanntes Design nicht nachvollziehen kann...): Eine Textur ist an Device gebunden. Ein Sprite wird mit einer Textur gekoppelt! Ergo: Mit dem Binden einer Textur an einen Sprite steht das Device/Fenster in das gerendert wird implizit fest.... deshalb verstehe ich das SFML Design z.b. nicht. Außer OGL handhbat das anderst!
Naja auf jedenfall so würde mein Design gekürz so aussehen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Textur
{
public:
Device _Device;
Texture _Texture;
};
class Sprite
{
public:
Sprite(Texture* texture);
void Draw(); // Renderfenster/Device steht mit der gewählten Textur fest!
// ...
};
|
Naja, da ich das so noch nie gesehen habe, sondenr nur ersteres bin ich jetzt sehr verwirrt
.
Anmerkungen/Vorschläge bitte