Italian [B4X] Creare e gestire tanti "omini" e costruzioni

Elric

Well-Known Member
Licensed User
Molti giochi (Stronghold, Age of Empire e tutti quelli che si ispirano a questi ma anche giochi di carte stile Magic che permettono di avere più di una carta dello stesso tipo) danno la possibilità di creare e gestire da 1 a n "oggetti".

Gli "oggetti" possono essere, ad esempio, una o più brewery 🍻 o uno o più mazzieri.

Nel caso dei birrifici, ciascuna ha un timer per la produzione (ad es., produci un barile di birra ogni 20 secondi ma questi 20 secondi partono dalla messa in gioco).

Nel caso dei mazzieri, ancorché alcune statistiche possano essere uguali per tutti, alcune (ad esempio i "punti vita") sono variabili per ciascun esemplare.

In alcuni casi, esistono le evoluzioni di questi "oggetti" (birrificio più grande e ottimizzato nella produzione, truppe veterane e di elite, stadio ulteriore del pokemon o qualcosa del genere).

Qual è il modo migliore per svilupparli in B4X?

Ad esempio:
* classe "mazziere" (oppure type mazzere?)
* inserire ogni "mazziere" in una list e quindi gestire le list
 

Sagenut

Expert
Licensed User
Longtime User
Domanda interessante e di non facile risposta.
Ma in linea di massima credo sia giusto il tuo pensiero:
creare un Type o una classe per ogni entità ed inserirli in List/Map magari per tipo.
 

Alessandro71

Well-Known Member
Licensed User
Longtime User
tipicamente sono oggetti su cui puoi effettuare delle operazioni, quindi classi con Sub per ogni operazione.
le strutture dati sono finalizzate all'accesso che dovrai farne:
indirizzi gli oggetti per istanza singola? -> Map
indirizzi gli oggetti per tipo in maniera sequenziale? -> List
 

LucaMs

Expert
Licensed User
Longtime User
Ad esempio:
* classe "mazziere" (oppure type mazzere?)
* inserire ogni "mazziere" in una list e quindi gestire le list
Un indizio: da una certa data in poi, ogni "elemento" in VB Net è "diventato" un oggetto, anche ad esempio i tipi di dato Integer, String e gli altri, e un oggetto si crea in base ad una classe.

Insomma, creare classi!

Se crei un Type, utile in alcuni casi, ti manca tanta roba:

1 - il controllo (validazione) sul tipo di dati inseriti nella variabile di quel tipo
2 - i metodi! Le Sub, le funzioni
3 - gli eventi

Nel caso dei birrifici, ciascuna ha un timer per la produzione (ad es., produci un barile di birra ogni 20 secondi ma questi 20 secondi partono dalla messa in gioco).
E' chiaro che non potresti avere un custom type per questo, no? Avrai una classe clsBrewery con un timer.

L'oggetto più utile e comodo per tenere insieme gli oggetti è la Map.

Comunque avrai sicuramente bisogno anche di un database; mi sembra una buona idea avere una tabella per ogni oggetto del gioco (Brewery, Mazziere, etc) e riempire la classe (o meglio l'oggetto) relativa con i dati di questa tabella.


P.S. Stavo scrivendo tutta questa pappardella prima di vedere il post precedente, di @Alessandro71, scritto molto meglio, molto più sintetico :)
 
Last edited:

Elric

Well-Known Member
Licensed User
Ho fatto questa prova.

Se qualcuno ha suggerimenti, saranno benvenuti!
 

Attachments

  • BreweryAndMaceman 231230.zip
    16 KB · Views: 38
Top