- Rpg World -



Db Land Games - RpgMaker Comunity

Tutorials RPG Maker 2000 versione Italiana

17/11/03, Eternity6

Come creare un contatore

Come creare un contatore sempre visibile sullo schermo che conti il recupero di determinati oggettio la quantità di determinate cose.

Intro

Lo scopo di questo tutorial è quello di spiegarvi come creare un classico contatore sempre
visibile su schermo che tenga nota del numero di oggetti recuperati durante una partita.
Questo tipo di contatore è molto utile se state creando un platform o qualsiasi altro
gioco dove sia indispensabile recuperare un numero alto di oggetti uguali (monete, frutti,
pietre quello che volete) per proseguire nella storia.

In linea del tutto teorica andremo a creare un'oggetto su mappa che una volta raccolto faccia
aumentare di varie unità il contatore, poi grazie all'utilizzo di due variabili andremo a
scomporre il valore totale degli oggetti recuperati in centinaia, decine e unità fino a
far comparire su schermo il numero esatto di oggetti recuperati.

Abbiamo bisogno per questo tutorial:

- Di un CharSet che raffigure gli oggetti da raccogliere
- Di 10 Pictures che rappresentino i numeri da 0 a 9




Indice Dei Contenuti

Evento Su Mappa

Creaiamo l'evento "soldino trovato" su mappa, diamogli la figura di una moneta impostiamo come
condizione di avvio "Contatto Tra Evento e Eroe", situato "Nello Stesso Livello Dell'eroe" e
istruiamo l'evento come segue:




<>Variabile: [0001:Soldi] + , 1
<>Suona SE: Decision2
<>Muovi Evento: Questo Evento, Cambia Grafica, ComeFantasma
<>



In Pratica quando il personaggio toccherà l'evento "soldino trovato" aumentiamo di una unità la
variabile Soldi, si sentirà un'effetto sonoro che indicherà di aver preso una moneta, e poi
l'evento "soldino trovato" cambierà grafica diventando trasparende.

Inutile dire che possiamo creare vari eventi "soldino trovato" magari aumentando anche il
valore dalla banconota (aumentiamo la variabile Soldi invece che di 1 magari di 5 o quello
che preferiamo).

Con le mappe ora abbiamo finito...Andiamo a lavorare sui processi paralleli ;)




Indice Dei Contenuti

Evento Comune 1° Parte (Contiamo le centinaia)


Creiamo un processo parallelo chiamato molto originalmente "Contatore Soldini", impostiamolo
come processo parallelo, che si attivi a Switch attivo (lo switch chiamatelo CONTATORE SOLDINI).
Ora starete già li a sbraitare...Come facciamo a settarlo On, non sta scritto in questo tutorial!
Bè...Non c'è scritto perchè sarete voi a scegliere quando attivarlo, quando avete bisogno
del contatore create un evento che setti On lo Switch e magicamente partirà il contatore ;)...
Comunicazione di servizio: Lo script di esempio presente in questo tutorial utilizza img
dalle dimensioni 20X30 Pixel, per non ritrovarvi con dei posizionamenti sballati utilizzate anche
voi img della stessa misura :-)

Una volta creato questo evento comune facciamo in modo che "legga" il valore totale salvato
nella variabile "Soldi" e poi mostri il risultato tramite le picture...




<>Label: 1N°
<>Mostra Figura: 11, Coin, (270,20)
<>Variabile: [0002: Valore Decine]Poni, Var.[0001]val.
<>Variabile: [0003: Valore Unità]Poni, Var.[0001]val.
<>



Abbiamo iniziato lo script creando un'etichetta, in questo modo lo script potrà in seguito andare
in loop, ripetersi allì'infinito in modo tale da aggiornare sempre il valore indicato dalla
pictures sullo schermo, poi mostriamo un'img, un'icona che rappresenta una moneta (in questo
modo il giocatore saprà che quello è un contatore delle monete), piazzata in modo di comparire
in alto sulla destra.
Abbiamo inoltre utilizzato 2 nuove variabili, Questo perchè lo script per individuare le img da
cambiare deve sottrarre al nostro valore totale dei soldi l'unità, la decina e la centinaia
individuata...Ora sembra difficile ma proverò a spiegarmi meglio:

Lo script dando il numero 145 non riesce a individuare a priori il valore 1 delle centinaia il
valore 4 delle decine e il valore 5 delle unità...Ma procederà come segue:
Tramite un'operazione "per tentativi" andrà a cercare il valore singolarmente per ogni unità
che compone il numero nella maniera seguante:

in 145 c'è una centinaia ovvero 100 quindi la prima picture dovrà essere 1
Poi 145 - 100 = 45
nel numero 45 ci sono 4 decine quindi la seconda picture sarà 4
45 - 40 = 5
Il valore dell'ultima picture sarà naturamlente 5

Se non utilizzassimo le altre due variabili perderemo durante l'operazione di ricerca, il valore
totale degli oggetti recuperati, vanificando cosi il nostro script.
Procediamo ora a scrivere la parte di script che individua il primo numero che compone la
Cifra che dobbiamo rappresentare!




<>Note: MOSTRIAMO IL PRIMO NUMERO
: :************************
<>Se Var[0001:Soldi] - 900Mag-Ugu
<>Mostra Figura: 12, 9, (290,15)
<>Variabile: [0002: Valore Decine] - , 900
<>Variabile: [0002: Valore Unità] - , 900
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 800Mag-Ugu
<>Mostra Figura: 12, 8, (290,15)
<>Variabile: [0002: Valore Decine] - , 800
<>Variabile: [0002: Valore Unità] - , 800
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 700Mag-Ugu
<>Mostra Figura: 12, 7, (290,15)
<>Variabile: [0002: Valore Decine] - , 700
<>Variabile: [0002: Valore Unità] - , 700
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 600Mag-Ugu
<>Mostra Figura: 12, 6, (290,15)
<>Variabile: [0002: Valore Decine] - , 600
<>Variabile: [0002: Valore Unità] - , 600
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 500Mag-Ugu
<>Mostra Figura: 12, 5, (290,15)
<>Variabile: [0002: Valore Decine] - , 500
<>Variabile: [0002: Valore Unità] - ,500
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 400Mag-Ugu
<>Mostra Figura: 12, 4, (290,15)
<>Variabile: [0002: Valore Decine] - , 400
<>Variabile: [0002: Valore Unità] - , 400
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 300Mag-Ugu
<>Mostra Figura: 12, 3, (290,15)
<>Variabile: [0002: Valore Decine] - , 300
<>Variabile: [0002: Valore Unità] - , 300
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 200Mag-Ugu
<>Mostra Figura: 12, 2, (290,15)
<>Variabile: [0002: Valore Decine] - , 200
<>Variabile: [0002: Valore Unità] - , 200
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 100Mag-Ugu
<>Mostra Figura: 12, 1, (290,15)
<>Variabile: [0002: Valore Decine] - , 100
<>Variabile: [0002: Valore Unità] - , 100
<>
<>: ALTRIMENTI
<>Se Var[0001:Soldi] - 0Mag-Ugu
<>Mostra Figura: 12, 0, (290,15)
<>Variabile: [0002: Valore Decine] - , 0
<>Variabile: [0002: Valore Unità] - , 0
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE



Indice Dei Contenuti

Evento Comune 2° Parte (Contiamo le decine)


Con lo stesso procedimento mostrato prima andremo a individuare il valore delle decine, questa
volta però la variabile "Soldi" non verrà utilizzati, il raggio di ricerca verrà ristretto alla
variabile "Valore Decine" in modo tale da individuare il valore delle decine e di sottrarle
alla variabile "Valore Unità" in modo tale da scovare l'ultimo numero della cifra...




<>Note: MOSTRIAMO IL SECONDO NUMERO
: :**************************
<>Se Var[0002:Valore Decine] - 90Mag-Ugu
<>Mostra Figura: 13, 9, (300,15)
<>Variabile: [0003: Valore Unità] - , 90
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 80Mag-Ugu
<>Mostra Figura: 13, 8, (300,15)
<>Variabile: [0003: Valore Unità] - , 80
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 70Mag-Ugu
<>Mostra Figura: 13, 7, (300,15)
<>Variabile: [0003: Valore Unità] - , 70
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 60Mag-Ugu
<>Mostra Figura: 13, 6, (300,15)
<>Variabile: [0003: Valore Unità] - , 60
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 50Mag-Ugu
<>Mostra Figura: 13, 5, (300,15)
<>Variabile: [0003: Valore Unità] - , 50
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 40Mag-Ugu
<>Mostra Figura: 13, 4, (300,15)
<>Variabile: [0003: Valore Unità] - , 40
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 30Mag-Ugu
<>Mostra Figura: 13, 3, (300,15)
<>Variabile: [0003: Valore Unità] - , 30
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 20Mag-Ugu
<>Mostra Figura: 13, 2, (300,15)
<>Variabile: [0003: Valore Unità] - , 20
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 10Mag-Ugu
<>Mostra Figura: 13, 1, (300,15)
<>Variabile: [0003: Valore Unità] - , 10
<>
<>: ALTRIMENTI
<>Se Var[0002:Valore Decine] - 0Mag-Ugu
<>Mostra Figura: 13, 0, (300,15)
<>Variabile: [0003: Valore Unità] - , 0
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE



Indice Dei Contenuti

Evento Comune 3° Parte (Contiamo le unità)


Siete ancora qui!!...Ormai dovreste aver capito il meccanismo no?..Cosa volete che scriva
l'ultima parte dello script ?...(uff ^_^)

Perfetto ora la variabile "Valore Unità" è finalmente utile!! Basterà controllare che valore
ha assunto e mostrare la relativa Pictures ;)...Il processo è abbastanza lungo e se vogliamo
anche noioso...Però è efficace :)




<>Note: MOSTRIAMO L'ULTIMO NUMERO
: :************************
<>Se Var[0003: Valore Unità] - 9Mag-Ugu
<>Mostra Figura: 13, 9, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 8Mag-Ugu
<>Mostra Figura: 13, 8, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 7Mag-Ugu
<>Mostra Figura: 13, 7, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 6Mag-Ugu
<>Mostra Figura: 13, 6, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 5Mag-Ugu
<>Mostra Figura: 13, 5, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 4Mag-Ugu
<>Mostra Figura: 13, 4, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 3Mag-Ugu
<>Mostra Figura: 13, 3, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 2Mag-Ugu
<>Mostra Figura: 13, 2, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 1Mag-Ugu
<>Mostra Figura: 13, 1, (310,15)
<>
<>: ALTRIMENTI
<>Se Var[0003: Valore Unità] - 0Mag-Ugu
<>Mostra Figura: 13, 0, (310,15)
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>
<>: FINE
<>Aspetta: 0.1s.
<>Vai Alla Label: 1N°
<>



Semplice no ?...Una volta individuata anche l'ultima cifra facciamo riposare per una frazione di
secondo lo script e poi lo facciamo riiniziare daccapo ;-)

Il tutorial è finito...Andate in pace :D (ho sempre sognato dirlo!!).



Indice Dei Contenuti

..:: Torna all'indice tutorials ..:: Cerca tutorials