Come dice Holy, gli switch e le variabili sono alla base di cose più o meno complesse, e il tuo caso ne è un esempio lampante.
Innanzitutto posso dirti che le guide generiche di rpgmaker, quando si tratta di programmazione a EVENTI (cioè con le istruzioni preimpostate a pulsanti) valgono, con le dovute eccezioni, praticamente per tutti i tool.
Quando si tratta invece di programmazione via script, da Rpgmaker XP in poi, le cose cambiano da tool a tool, soprattutto con MV che ha smesso di usare gli script in RGSS e ha adottato il javascript.
A te comunque per ora interessano solo gli eventi.
Gli switch, come le variabili, hanno degli eventi dedicati nel listone delle istruzioni possibili.
Quindi insieme ai vari "mostra messaggio", ecc, dovresti (vado a braccio perché personalmente non ho mai usato MV) trovare anche delle istruzioni come imposta variabile, imposta switch.
Di sicuro nella prima pagina degli eventi disponibili.
Tramite queste istruzioni è possibile imporre un valore a una variabile o a uno switch, variarlo (sommandoci ad esempio una costante o un'altra variabile nel caso delle variabili) e fare varie operazioni.
Come già detto, così come si accende il programma, tutte le variabili sono inizializzate al valore 0 e tutti gli switch al valore FALSO/OFF.
Le variabili e gli switch sono già tutti lì, a differenza dei linguaggi di programmazione dove devi definirle e inizializzarle.
Sono tutte identificate da un numero progressivo, tu semplicemente ne selezioni una, le dai un nome che ti serve a ricordare cosa fa e da lì in poi la usi (però, in pratica, ti basterebbe sapere che è la variabile numero 13, per esempio. Il nome è solo per chiarezza tua).
Supponendo che nella mappa ci siano 10 chara-pipistrelli che girano e che l'eroe toccandoli dia inizio a scontri singoli che poi si concludono con la morte del pipistrello o col game over, a te servono:
10 switch che tengano conto dello stato di morte dei 10 pipistrelli
1 variabile che tenga il conto dei pipistrelli uccisi
1 switch che tenga conto del fatto che sei stato ricompensato (per evitare di essere ricompensato all'infinito)
Ogni pipistrello deve quindi essere un evento con 2 pagine.
La prima è quella del pipistrello che va in giro per la mappa e che se toccato (suppongo) dà il via allo scontro.
La seconda deve essere ciò che resta dopo che il pipistrello è morto, cioè niente (oppure un cadavere di pipistrello... volendo andare oltre). Quindi una pagina vuota, senza istruzioni e senza grafica, che si attiva con la pressione di un tasto (che tanto non attiva nulla) e che come condizione di pagina ha che lo switch PIPISTRELLO_X_MORTO è a ON, cioè che è vero che il pipistrello numero X è morto.
Nella prima pagina quindi serve che, dopo la sconfitta del pipistrello, quando lo scontro finisce, lo switch relativo al pipistrello sia posto a ON e la variabile PIPISTRELLI_UCCISI sia incrementata di 1 (tanto parte da 0).
Nei tool più recenti esistono gli switch locali, che valgono solo per quell'evento, quindi non è nemmeno necessario avere 10 switch globali specifici come ho ipotizzato io, basta porre uno switch a ON in modo che quello sia lo switch che decreta la morte o la vita del pipistrello.
Ridendo e sterminando, l'eroe farà fuori tutti i pipistrelli della mappa, quindi a questo punto dovremmo avere una mappa con nessun pipistrello che gira, tutti gli switch locali a ON e la variabile del conto dei morti che ha raggiunto il valore di 10.
Il personaggio che non ama particolarmente i chirotteri, nella sua programmazione dovrà avere un blocco condizionale in cui controlla il valore della variabile e:
SE pipistrelli_morti < 10 allora mostra messaggio "Ti premierò se ammazzi 10 pipistrelli"
ALTRIMENTI (equivalente a dire che i pipistrelli morti sono >= 10) "bravo! Hai liberato il mondo dalla minaccia dei pipistrelli! Eccoti 10 euro!"
-aumenta i soldi dell'eroe di 10 euro
-Switch PREMIO_PIPISTRELLI poni a ON
In questo modo ho ottenuto i 10 euro e il programma si ricorda che me li ha già dati.
Quindi a questo punto si possono seguire 2 strade.
O si fa una seconda pagina anche per il personaggio, attiva con lo switch PREMIO_PIPISTRELLI a ON nella quale si mette il messaggio "grazie ancora per il favore" o quello che ti pare,
oppure, senza stare a fare tante pagine, si usa un blocco condizionale A MONTE di quello precedente che controlli lo switch, del tipo:
SE PREMIO_PIPISTRELLI = OFF
ALLORA - SE PIPISTRELLI_MORTI < 10
---------ALLORA ...
---------ALTRIMENTI ...
ALTRIMENTI "grazie ancora per il favore".
Insomma, non c'è mai un modo solo di fare le cose.
Spero di essere stato abbastanza chiaro, in bocca al lupo per la tesi.
Modificato da Testament, 07 May 2018 - 01:45 AM.