2009-04-10 5 views
1

Voici mon problème. J'essaie d'écrire un petit moteur de jeu simple (je le fais pour améliorer mes compétences en design). J'ai un objet Scene qui contient tout ce dont l'API de rendu a besoin pour le rendre.Quel est le meilleur motif de conception pour gérer une scène qui peut passer par plusieurs phases

Naturellement, je voudrais que ma scène soit à l'abri des changements futurs, ce qui signifie que les changements futurs n'auront pas à casser son interface. Par exemple Si je veux à l'avenir que ma scène ait une fonction Fog qui peut être activée et désactivée, je veux pouvoir l'ajouter sans casser mon interface de scène.

Une chose importante est que l'API de rendu communique avec la scène à travers une interface (qui, évidemment, nommé « Iscene)

Mes pensées vont vers le « Pattern décorateur », peut-on suggérer quelque chose qui pourrait être plus approprié

Répondre

2

Je vous suggère de jeter un oeil à existing APIs Vous comprendrez vite que ce n'est pas un problème simple: le brouillard pourrait être un filtre (uniforme sur l'écran) mais cela semble irréaliste. Le brouillard devrait ressembler davantage à un nuage translucide Donc, le rendre en tant qu'un ou plusieurs objets gris translucides peut être plus réaliste mais il pourrait être impossible à implémenter avec le matériel actuel.

[EDIT] Ce que j'essaie de dire: Un simple motif de décorateur n'est probablement pas suffisant pour obtenir un effet complexe. Je n'ai pas vu beaucoup de moteurs mais la plupart opte pour un objet de scène très simple qui enregistre seulement des globaux (lumière ambiante, position de la caméra, taille de l'affichage) plus une liste d'objets à afficher. Les objets contiennent alors des informations supplémentaires.

Ces choses sont assez stupides. Un moteur de rendu prendra les informations stockées dans ces objets et les convertira en quelque chose que le matériel d'affichage peut utiliser.

Encore une fois, mon conseil est d'obtenir des idées d'API existantes, car elles ont déjà fait toutes les erreurs.

+0

Je comprends ce que vous dites sur le brouillard mais je ne l'ai donné qu'à titre d'exemple, Ma question ne portait pas sur le brouillard mais plutôt sur le motif waht à appliquer afin d'éviter de futures modifications de l'interface IScene – user88637

+0

commentaire édité, vous avez un point, merci pour votre réponse. – user88637

Questions connexes