2012-03-28 2 views
1

Je fais un système d'inventaire pour mon jeu. Je ne suis pas sûr de la structure des classes, j'ai déjà une classe d'armes, d'objets et de blocs. Les armes vont sur le joueur, les objets peuvent être placés sur des blocs, et les blocs peuvent être placés sur une grille de tuiles. J'ai une classe appelée tile pour gérer le placement sur la grille. Mais je me demande comment je devrais faire une classe pour tenir chaque «chose» ensemble («choses», armes, blocs et objets).Mise en page du système d'inventaire

Si je ne suis pas clair ou si vous avez besoin de plus d'informations, faites un commentaire.

+3

Veuillez ne pas préfixer vos titres avec "C# -" et ainsi de suite. C'est ce que les tags sont pour. –

+1

Oh, désolé, je suis nouveau ici. – Cyral

+2

Pourquoi chaque chose doit-elle être tenue ensemble? Il semble que vous avez déjà les relations en place. Un joueur a des armes. Les tuiles contiennent des blocs qui contiennent des objets. – Pete

Répondre

2

Vous avez une bonne idée de départ, mais penser hors de la boîte - si vous avez un inventaire typique vous obtenu

Joueur
+ Inventaire
+ [] Articles
+ [] Armes

Si vous envisagez d'implémenter un inventaire basé sur les emplacements, vous disposez de nombreuses possibilités pour réaliser la liaison d'éléments, par ex.

1) Point placé dans l'emplacement dans l'inventaire
2) Point placé au point dans l'emplacement dans l'inventaire
3) Point placé dans l'inventaire dans l'inventaire (par exemple un coffre ou équiv. D'autre)

donc essayer de pensez à un concept qui est plus flexible - vous pourriez le faire en créant des interfaces ou des classes de fournisseurs qui sont capables de contenir d'autres choses. Une façon pourrait être

joueur a l'inventaire outils d'inventaire iInventory article met en œuvre iInventory (si elle est un coffre ou équiv. D'autre)

Si vous voulez mettre en œuvre une telle grille, nous savons de WoW ou alors, vous pourrait également écrire des classes qui sont capables de trier et d'articles de commande ...

inventaire met en œuvre IOrderedInventory

et votre grille offre une IInventoryAdapter

En manipulant vos actions et classes de ces façons, vous pouvez être sûr que l'interconnexion fonctionne bien.

J'espère avoir été en mesure de vous donner quelques idées.

Salutations,

Questions connexes