Bonjour !
Je développe un moteur de jeu 2D en C++,
J'utilise fortement les classes abstraites pure pour faciliter l'abstraction entre le jeu et le moteur de jeu.
Cependant il n'est compatible qu'avec SDL, puisque je doit utiliser des structures propre à cette API (SDL_Surface, SDL_Rect).
Ce que je voudrai, c'est pouvoir le rendre vraiment indépendant de l'API graphique. (pour pouvoir l'utiliser avec par exemple GDI, ou d'autres plus intéressante comme GRRLIB pour développer sur Wii).
Je vois a peu près comment m'y prendre, mais cela demande tellement de travail que je préfère demander avant !
Je pense qu'il faudrait définir des structures opaque au dessus de chaque API (Par exemple, une structure Rectangle qui utilise en interne un RECT de l'API windows pour GDI ou un SDL_Rect pour SDL, idem
pour les surfaces, mon interface IGameEngine pourrai avoir une fonction getRender qui renvoi une structure Surface utilisant soit SDL_Surface, soit un Device Contexe HDC)
Cette technique à deux inconvénients :
- On ne peut réaliser ces structures abstraits qu'avec les possibilités communes aux API utilisés.
- Cela demande beaucoup de temps
Es-ce une bonne méthode ? y a t il plus simple ?
Partager