Ciao!
Mi sono scaricato i sorgenti del tuo UnderWorld; il discorso può andare, ma devi sicuramente trovare qualcuno che ti aiuti. Purtroppo da parte mia non posso, e mi dispiace.
Ad ogni modo, vorrei darti dei consigli, che potrebbero aiutarti nella costruzione del programma; non sono critiche, prendili solo come consigli:
a) leggendo questa prima stesura del programma, ho notato che stai buttando giù tutta l'applicazione in un unico file (la main form, tanto per chiarire); dato che, credo, in un prossimo futuro il discorso si allargherà, il mio consiglio è quello di chiarire meglio (cosa che hanno già scritto altri) lo schema di massima. Detto questo, e vedendo il tuo primo approccio, ho notato appunto che manca una base reale; già l'assenza di oggetti, che nel programma vengono gestiti esclusivamente da variabili array, potrebbe portarti, oltre che fuori strada, ad un aumento esponenziale delle difficoltà di gestione nel prossimo futuro. Il consiglio che ti dò in questo caso, è di prevedere il più possibile una logica ad oggetti, con ovviamente file separati, che ti permettano una gestione più particolareggiata e manutenibile; la cosa potrebbe essere un tantino complicata all'inizio, ma poi renderà il discorso più gestibile in futuro.
b) ho visto che hai già creato alcune immagini (o sprite), e la cosa è molto carina, oltre ad essere molto laboriosa, specialmente per un non grafico (come sono anche io). Te nè dò merito, e apprezzo molto la tua iniziativa, ma questo comporta un grosso dispendio di energie, se fai tutto da solo. Con ciò voglio dire, collegandomi al punto a), che sarebbe il caso di studiare meglio lo schema applicativo, e cercare di suddividere i compiti, o i pezzi di logica, in modo che ciascun programmatore si occupi di un determinato aspetto del programma; questo vuol dire che occorre suddividere, sia logicamente che fisicamente:
1) motore di gioco (oggetti e loro caratteristiche, operazioni, funzioni di calcolo, ecc);
2) motore grafico (oggetti grafici, posizionamenti, movimenti, ecc.)
3) interfaccia utente (form, finestre, dialoghi, interattività tastiera/mouse, ecc.)
3) logiche di I/O (gestione file: configurazione, modalità di gioco, punteggi, ecc.)
Il tutto verrà poi amalgamato da logiche di collegamento tra i vari blocchi; questo ti permette di lavorare e di dedicarti su un'attività specifica, senza occuparti di cosa fà il resto. Ovviamente quest'ultima frase è un modo di dire, che intende il fatto che, dopo aver impostato lo schema generale del progetto, ognuno poi, in base alle specifiche date, si deve occupare solo di un pezzo.
Oltre a ciò, questo tipo di approccio ti permetterà, se nel caso e nel futuro, di cambiare totalmente un blocco logico, senza obbligatoriamente toccare tutto il testo del programma.
Punto.
Ovviamente i miei sono solo consigli.
Ciao e buon lavoro! :good: