Salve, è un problema che seppur risolto (in passato) rattoppando di qua e di là mi porto dietro da un po' di tempo.
Andiamo un po' nello specifico:
ho creato un mio giochino in java, un gioco a livelli, come è logico che sia per giocare un determinato livello è necessario che siano stati superati i livelli precedenti.
Vorrei fare in modo che la partita del gioco possa essere ripresa in un secondo tempo, una sorta di salvataggio progressi in pratica. La mia idea è quella di salvare, ad esempio, il numero del livello corrente in file di testo quindi quando il giocatore decide di riprendere la partita il programma va a leggere il numero nel file e lo riporta al livello dove era rimasto.
Il problema, come penso abbiate intuito sta nella scrittura su file..Windows limita i permessi dei file in determinate directory.
Poichè il mio intento è di distrubuire a lavoro finito il gioco, creerò una sorta di installer che inserisca gli eseguibili e il resto di cui essi necessitano nella cartella programmi (ha permessi limitati)..vorrei inserire lì anche il mio "file di configurazione" ma così facendo non riuscirei a scrivere su di esso poichè necessiterebbero i permessi di amministratore.
Dunque chiedo a voi: come posso fare per raggirare il problema?
Ci sarebbero varie strade a cui ho pensato:
-Ho pensato, e in passato ho risolto così per altri miei software, di "installare" il file di configurazione in una cartella libera tipo "Documenti", ma si sa un utente medio vede un file che non riconosce e lo elimina mandando in crash il mio software (tralasciamo il fatto che io potrei gestire l'eccezione del non trovare il file come la rigenerazione di esso e resettando il gioco..ma così il problema potrebbe ripresentarsi). Ovviamente nella cartella programmi (quasi) nessuno andrebbe a smanettare e rompere le scatole..
-potrei "incapsulare" il jar d'avvio in un exe (esistono tanti programmi ormai che lo fanno) e dire all'installer di dargli i permessi di amministratore..provai una volta e mi sembra che funzionò. Resta comunque il fatto che è, a mio parere, una procedura molto brutta..andrebbe anche a rovinare la portabilità del java stesso (anche se il problema ora lo sto analizzando su Windows).
Avete altre idee?Consigli?Normalmente qual è la procedura che i programmatori (java) adottano in questi casi?

Rispondi quotando
