Lezione: Creare una Minimappa
- Obiettivo della lezione
Alla fine di questa lezione sarete in grado di creare una mappa che segna dove sta l'eroe ed eventuali tesori, comoda per i dungeon. - Prerequisiti
-Buona conoscenza di variabili, switch e gestione delle immagini
-Un programma di grafica decente (io spiego come fare con photoshop)
- Geometria analitica ?__? - Preparazione delle immagini
Allora, prima di iniziare a programmare abbiamo bisogno dell'immagine della mappa rimpicciolita pronta e di tutti gli eventuali "segnalini" che diranno dove sta l'eroe o un evento sulla minimappa.
La minimappa deve essere proporzionata a quella reale, quindi ? meglio evitare di disegnarla a caso. Il modo migliore ?, una volta finito il mapping, settare lo zoom di rpgmaker su 1/2 o 1/4 (a seconda di quanto ? grande la mappa) in modo da farla stare nello schermo, e infine fare uno screenshot (Premendo il tasto STAMP sulla tastiera). A questo punto apriamo il programma di grafica, creiamo un'immagine vuota e incolliamo lo screen fatto. Ritagliamo la parte che ci interessa:
A questo punto avremo una immagine del genere:
Possiamo qui decidere cosa farne (aggiungere un bordo, ripassarla e renderla pi? schematica, insomma, dipende dalle esigenze).
E ora... Prendete sotto mano una calcolatrice ^^ - Proporzioni della mappa
Prima di tutto bisogna immaginarsi lo schermo di RPG Maker come un piano cartesiano ribaltato (l'origine in alto a sinistra, non in basso a sinistra), di dimensioni 640x480 pixel:
Noi abbiamo la nostra Minimappa, che ovviamente ? di dimensioni minori di quelle originali (ma dai XD). Ora dobbiamo impostare una proporzione, tra la mappa originale e la minimappa:
Prima di tutto cerchiamo:
-la dimensione della mappa (premiamo col destro sulla mappa e guardiamo XD): nel mio caso 20x20
-la dimensione in pixel dell'immagine della minimappa: nel mio caso 300x300 px
ora, sappiamo che un tile (ovvero un quadretto di rpgmaker) occupa 32 pixel, quindi scopriamo che la nostra mappa occupa in pixel 640x640 (gi?, perch? 20*32 = 640 ?[______]? )
Ottimo, scriviamo questi dati dove ci pare e iniziamo a programmare - Aggiornamento dell'eroe
Importiamo tutte le immagini (i segnalini e la minimappa) nella cartella picture, creiamo un evento in processo parallelo (evento comune o evento su mappa, ? uguale), mettiamo un mostra picture per far vedere la minimappa. Mettiamo di mostrarla in coordinate x = 200, y = 140. (salviamocele le coordinate, servono poi)
A questo punto impostiamo 2 variabili:variabile eroe_x == Sprite Eroe -> tile X variabile eroe_y == Sprite Eroe -> tile Y
Queste ci servono per ottenere la posizione dell'eroe sulla mappa reale. Queste coordinate sono espresse per? in Tile, a noi servono in pixel. Moltiplichiamo *32 e si risolve tutto:Variabile eroe_x * 32 Variabile eroe_y *32
ora conosciamo le coordinate dell'eroe sulla mappa reale, solo che noi ora dobbiamo posizionare il segnalino dell'eroe in relazione alla minimappa. Quindi, facciamo una proporzione:
[coordinata x eroe sulla mappa] : [larghezza della mappa] = [coordinata X eroe sulla minimappa] : [larghezza minimappa]
(stessa cosa per la y)
quindi:
[coordinata X eroe sulla minimappa] = 300 * [coordinata eroe sulla mappa] / 640
300 e 640 sono i dati di prima, ovvero larghezza minimappa e larghezza mappa.
Quindi, tradotto a eventi sarebbe (mio dio forse vi sto incasinando la vita XD):Variabile eroe_x *300 Variabile eroe_x / 640
stessa cosa per la y (ovviamente con l'altezza al posto dell'altezza >< ma nel mio caso sono uguali):Variabile eroe_y * 300 Variabile eroe_y /640
Perfetto, abbiamo ottenuto la posizione dell'eroe sulla minimappa. Per? va contato che la minimappa non l'abbiamo messa attaccata al bordo dello schermo, ma spostata. Quindi spostiamo le coordinate ottenute in modo che siano in relazione alla posizione che ha la minimappa:Variabile eroe_x + 200 Variabile eroe_y + 140
A questo punto non resta che mostrare l'immagine del segnalino:
Mostra immagine 2: "segnalino": coordinata_X = variabile eroe_x, coordinata Y = eroe_y
La nostra minimappa ? pronta per essere usata e si aggiorna al movimento dell'eroe. - Eventuali eventi
Il discorso ? lo stesso che per l'eroe: creiamo 2 variabili, le assegnamo alla tile X e tile Y dell'evento e facciamo gli stessi identici calcoli, poi mostriamo il segnalino... - Demo dimostrativa (la minimappa si attiva premendo S)
minimappa.rar 270.73K 134 Numero di downloads
Commenti e domande ben accetti ^^