Sto costruendo un gioco di dungeon RPG in Java e sono bloccato sulla creazione di una struttura dati.Che cos'è una buona struttura dati Java per memorizzare gli oggetti del gioco RPG?
Ho un sacco di oggetti Thing che posso copiare per popolare un dungeon con. Per esempio, c'è un oggetto Thing bread, un oggetto Thing, un oggetto Thing mail a catena, mostro Thing (s), ecc. Voglio memorizzarli in una Library centrale e quindi essere in grado di recuperare un oggetto usando determinati interrogazioni. Voglio memorizzarle utilizzando i seguenti campi:
int minLevel
int maxLevel
double probability
int[] types
Quindi una spada arrugginita avrebbe un minLevel
di 1, un maxLevel
di 3, un probability
di rarità (3%), e [type.SWORD,type.WEAPON,type.ITEM,TYPE.EQUIP]
. Una spada migliore avrebbe minLevel
2, maxLevel
10, rarità (1%).
Quindi voglio recuperare un numero casuale type.SWORD
dalla libreria e dire che sono al livello 3. Dovrei ottenere una spada arrugginita più spesso della spada migliore in base alle loro probabilità. Se avessi recuperato uno type.SWORD
dalla libreria che richiedeva il livello 10, avrei recuperato solo la spada migliore.
Spero che abbia senso.
MODIFICA Nella fase di inizializzazione, verranno creati tutti gli oggetti di base. Cose come le armi disponibili, l'armatura, i cibi, le pozioni, le bacchette, tutte le cose di base possibili che hanno una tessera grafica unica nel gioco. Poi, quando voglio posizionare un oggetto da qualche parte, faccio solo una copia di una delle cose disponibili, aggiusto le sue statistiche un po ', e la abbandono nel mondo. Gli oggetti reali sono tutte sottoclassi della classe Thing della radice, come la classe Creatura, Oggetto, Equipaggiamento (estende l'Oggetto), Arma (estende Equip), Armatura (estende Equip), Cibo (estende l'Oggetto), ecc. Ma voglio taggare sono diversi nel database della biblioteca, voglio usare tag extra, come type.RARE, type.ARTIFACT, type.CURSED, quindi voglio tag extra oltre alla classe.
Il gioco utilizza LIBGDX per essere disponibile su Android e come Applet. Io uso il set gratuito di Rltile, che ha migliaia di buone tessere. Userò Pubnub o Google App Engine per fornire supporto multiplayer.
ArrayList - http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html – Coffee
Il vostro mondo hanno una base di dati di oggetti fissi presenti alla creazione? O gli oggetti creati dal nulla quando sono necessari? – sarnold
quindi ogni cosa ha una serie di tipi annidati? Spada, arma, oggetto, equipaggiamento? –