Jump to content
Rpg²S Forum

[Ciclo] Le basi della programmazione


DracoMT2
 Share

Recommended Posts

Salve a tutti, mi scuso se apro in ritardo questo topic, ma ho avuto molto da fare con la scuola e ne avr? almeno fino al 20 xDD
Comunque, io sar? il vostro "Insegnante" di eventi base ^_^
In questo topic troverete, volta per volta, le prime 4 lezioni del programma, le quali trattano dei temi di base di RPG Maker, ovvero switch, variabili, condizioni se, picture... le colonne portanti, insomma. In altri topic raccoglier? poi le altre lezioni, raggruppate per tema.
Iniziamo dalla prima lezione:


Spoiler



Le basi della programmazione 2 - Comandi di grafica (animazioni, effetti mappa, picture)

Questa lezione ? molto pi? semplice della precedente, quindi potrete tirare fiato per un attimo: dopo una prima lezione cos? corposa, credetemi, queste cose sono semplici e di facile comprensione.
Iniziamo dalle animazioni: cosa sono? Semplicemente, le animazioni sono una sequenza animata di immagini (frames) riprodotta automaticamwnte dal programma tramite il comando "Mostra animazione" (show animation). Questo comando consente di riprodurre l'animazione su un evento o sul protagonista stesso. Le animazioni si possono trovare nel database nella scheda "Animazioni" (che fantasia, eh?). Si possono creare animazioni personalizzate, ma questo ? il programma di una lezione che vedremo pi? avanti (comunque non ? molto difficile).
Le animazioni vengono utilizzate automaticamente ogni volta che in battaglia usate una magia o una skill; per? possono anche essere usate per dare un tocco extra di vivacit? al vostro progetto.
Ora, gli effetti mappa: cosa sono? Anche questi, possono essere delle animazioni o delle modifiche alla mappa in cui si trova il personaggio; ad esempio, la pioggia, la nebbia, il "terremoto", dei flash (abbaglianti o meno) oppure una diversa tonalit? cromatica: li vedremo tutti in ordine.
Flash
Utilizzando il comando "flash schermo" (screen flash) si potr? scegliere la tonalit? del colore del flash modificando i parametri: pi? i valori sono bassi, pi? il flash sar? trasparente. Esempio, se mettete tutto a 255 il flash sar? totalmente opaco e lo schermo sar? coperto dal bianco. Subito sotto potete decidere la durata del flash, ovvero se deve essere istantaneo o a scomparsa graduale.
Scuoti
"Scuoti schermo" (screen shake) ? un comando molto semplice: lo schermo si muover? orizzontalmente a seconda della velocit? e dell'ampiezza che deciderete, per il tempo che imposterete.
Meteo
Gli effetti meteo sono essenziali in un progetto: potete disporre, di default, di pioggia, tempesta di neve o tempesta di sabbia; anche qui potrete decidere il tempo e la forza, anche se qui il tempo ha funzione diversa: non indica per quanto l'effetto deve durare, ma quanto tempo deve passare prima che, da forza 1, passi alla forza desiderata.
Tonalit?
La tonalit? dello schermo ? utile per creare l'atmosfera di certi ambienti: potete scegliere il colore da sovrapporre al vostro gioco e, anche qui, il tempo che esso deve impiegare per passare gradualmente dallo schermo normale alla tonalit? scelta: se tutti i colori a 0 e tempo di 1 frame, il cambiamento sar? evidente, se mettete 300 frames sar? come se calasse la notte; l'effetto finale sar? che, in entrambi i casi, non si vedr? pi? nulla finch? non ci sar? un'altro script che rimette tutto a 0 (default).
Ora, passiamo alle picture, argomento abbastanza importante, anche se semplice.
Immaginate di voler far vedere che un'ombra attraversa la mappa su cui si trova il pg. Come fare? Con le animazioni, certo, ma dovreste mettermi con pazienza e crearla da una singola immagine. Invece potete creare semplicemente la prima e fare in modo che scorra da sinistra verso destra o in ogni altra direzione. Questo ? fattibile con le picture (immagine in inglese si dice appunto "picture").
Ogni picture pu? avere un suo numero che la evidenzia, come le pagine di un'agenda: se il numero ? basso, la picture sar? l'ultima in fondo, se ? alto sar? sovrapposta a tutte le altre. Una volta scelta l'immagine, dovete posizionarla: ma come fare? Potete scegliere due riferimenti: o il pixel superiore sinistro dell'immagine, o il pixel centrale. In ogni caso, tenete presente quando inserite le coordinate che il punto x=0 e y=o si trova in alto a sinistra e cresce verso destra in x, verso il basso in y.

x;y 0;0 --------------10;0---------------------30;0---------------40;0
|
0;10|
|
|
0;30|
|
|

E' anche possibile assegnare la posizione di un'immagine a due variabili: infatti sia le variabili sia la posizione sono un valore numerico.
In RPGM Xp ? possibile modificare la grandezza dell'immagine (zoom), l'opacit? (0-255) e la tonalit? (normale, negativo, luminoso).
Altri tre comandi per le pictures sono muovi picture, cancella picture e colora picture.
Muovi picture (mi sembra abbastanza ovvia, comunque... xD): voi inserite il numero della picture corrispondente a quella che volete muovere, poi inserite le coordinate nuove, il tempo che deve impiegare a muoversi e, anche qui, gli effetti extra in rpgmxp (zoom, tonalit?, opacit?).
Cancella Picture: volete togliere di mezzo un'immagine antipatica, noiosa o obsoleta? Non c'? problema! Se sapete il suo numero di identificazione (quello che gli date alla creazione), il comando "Cancella Picture" fa al caso vostro: elimina in un secondo (o meglio, un frame) la picture indesiderata e tutto resta pi? pulito e ordinato.
Colora Picture: anche qui, come per lo schermo, potete scegliere il colore della picture e il tempo di transizione; l'unica differenza ? che, essendo indirizzato a una picture, dovete esplicitare il numero di identificazione dell'immagine da modificare.
Un consiglio: quando create pi? di una picture, assicuratevi di dargli numeri diversi, altrimenti la seconda canecller? la prima, la terza la seconda e cos? via...
Questo ? tutto sulle picture e, in generale, sulla mappa: alla prossima lezione ^_^
 

Terza Lezione:

Quando create un evento, controllate sulla sinistra, sotto il nome, e vedrete che pu? avere come condizione di attivazione 2 switch, 1 variabile o una switch locale. Utilizzando il comando "cambia switch" (control switch) potete creare una switch dandogli il nome che preferite e potete attivarla o disattivarla come preferite. Potete anche, con questo comando, accendere o spegnere una serie di switch in una volta sola, senza dover utilizzare pi? comandi. Le switch hanno un valore in tutto il vostro gioco: se ne accendete una all'inizio, essa rimarr? accesa in tutte le mappe e in tutti gli eventi, finch? non la spegnerete. Le switch locali invece sono un'aggiunta presente solo in rpgmaker XP: semplicemente, sono 4 switch (A,B,C,D) che funzionano solo relativamente all'evento in cui sono attivate; esempio concreto: se attivate una leva, immaginate che 4 porte, prima chiuse, ora si aprano in 4 mappe diverse del gioco; invece se aprite un forziere e trovate un oggetto, controllandolo dopo esso dovr? risultare vuoto: questo ? fattibile con una switch o, se non volete crearne una apposta, con una switch locale, che funzioner? solo limitatamente a quel forziere in quella mappa.
Esempio:
Create un evento con la sprite di un forziere, senza condizione di attivazione, e immettete il codice messaggio "Hai trovato un forziere vuoto"

<>messaggio "Hai trovato un forziere vuoto"
<>cambia switch [001] forziere_aperto ON


Ora create
una nuova pagina, mettete come sprite la stessa del forziere, ma con il coperchio aperto; poi spuntate la condizione di attivazione "switch [001]forziere_aperto" e nella pagina mettete il messaggio "E' aperto e vuoto"

<>messaggio "E' aperto e vuoto"

Nel vostro gioco il forziere ora funzioner? cosi: siccome la switch non ? attiva, la seconda pagina sar? ignorata e sar? per ora possibile eseguire la prima pagina, senza condizioni di attivazione; perci? verr? visualizzato il messaggio, dopo di ci? la switch si attiver?. Parlando di nuovo con il forziere, verr? rilevata la switch attiva e, siccome la seconda pagina ha come condizioni di attivazione quella switch, la pagina eseguita stavolta sar? la seconda, in cui si avvisa il giocatore che il forziere ? vuoto.
Creando invece un evento con una sola pagina e come condizione di attivazione la switch [001], nel gioco, finch? la switch ? spenta, l'evento non esister?, ma non appena la switch verr? attivata, ecco che far? la sua comparsa l'intero evento, nella posizione creata ed eseguibile con tutto il codice che contiene. Sempre con l'esempio di prima, provate a creare un secondo evento dandogli la sprite di una persona e a questa mettete come condizione di attivazione la switch del forziere e, come codice, un semplice messaggio: finch? il forziere ? chiuso, quell'evento non ci sar?; ma dopo aver anazillato il forziere e averlo aperto, accadranno due cose assieme: il forziere rimarr? aperto e comparir? un evento "nuovo".
Per spiegare con lo stesso esempio le switch locali, se provate nell'evento del forziere a utilizzare il comando "cambia switch locale" e a mettere come condizione di avvio della seconda pagina e del secondo evento la switch locale A, scoprirete che il forziere funzioner? bene, ma l'evento esterno non comparir?: questo perch? il secondo evento ? esterno a quello in cui viene modificata la switch locale, quindi ha una sua propria switch locale A, il quale non ? stata attivata, quindi l'evento non compare.
Se avete capito questa spiegazione, allora le alternative sono due: o siete dei geni, oppure questa lezione ? perfetta (io opterei per la prima). Passiamo ora alle "condizioni se", "if conditions" o "conditional branch" (stessa cosa, nomi diversi). La "condizione se", semplicemente, vi permette di porre una determinata condizione ad un evento, come una limitazione ad una parte del codice: esempio, immaginate che un evento vi dica un messaggio se avete un determinato nome, ve ne dica un'altro se il nome ? diverso da quello determinato dall'evento. Certo, la condizione di attivazione pu? essere quello che preferite e rpgmxp ha molte pi? varianti della versione precedente: comunque, in generale spaziano dalla pressione di un determinato tasto, al valora di una variablie, lo stato di una switch, il numero di soldi posseduti... La "condizione se" funziona in questo modo: voi potete scegliere la condizione di avvio e, se essa viene soddisfatta, viene eseguito il codice al suo interno:

<>Se (condizione):
codice
codice
codice
<>fine


Se la condizone non viene soddisfatta, la "condizione se" viene ingorata e saltata e il suo contenuto non viene eseguito-
Quando create la "condizione", nella finestra che si apre potete scegliere (tramite l'opzione spuntabile sotto) se la condizione pu? avere un alternativa: cos'? un'alternativa? Molto semplicemente, se ? presente un'alternativa e la condizione non viene soddisfatta, invece di saltarla verr? eseguito il suo interno.

<>Se (condizione):
codice
codice
codice
Altrimenti
codice
codice
<>fine


Come ultima cosa, rimane da spiegare cos'? il codice: nel caso non lo aveste ancora capito, fra i punti "Se", "Altrimenti" e "Fine" ci sono degli spazi in cui potete inserire tutto quello che volete: messaggi, switch, cilci, variabili, picture, effetti... tutto quello che volete, anche altre "condizioni se", state solo a non perdervi ;).
 

Quarta Lezione

<div style="margin:20px;margin-top:5px" "="">

 

Spoiler



Le basi della programmazione 4 - Comandi avanzati: variabili, cicli

Affronteremo ora un argomento cruciale della programmazione: le variabili. Ora, immaginate di avere davanti a voi un cassetto: questo cassetto pu? contenere delle palline numerate da -9999 a +9999. Ora, la variabile ? questo: un cassetto in cui potete mettere dei valori; questi valori, essendo numerici, nel vostro progetto possono essere qualunque cosa, purech? quella "cosa" sia riconducibile a un valore numerico. Per esempio, una variabile pu? essere il numero di soldi ottenuti, il valore di una statistica del pg, il numero di passi effettuati, il numero di salvataggi effettuati, i peli della barba del vostro personaggio... qualunque cosa abbia un valore numerico. Se volete che la variabile sia il numero di messaggi visualizzati durante il gioco, il numero di volte che un tasto viene premuto, il numero di nemici sconfitti, vi basta usare le variabili in combinazione con la "condizione se". Sarebbe troppo lungo spiegare cosa si pu? fare con le variabili, perci? scriver? solo poche cose, il resto lo lascio alla vostra immaginazione:
-le coordinate del pg e l'id della mappa in cui si trova
per poter teletrasportate il pg con l'apposito comando secondo i valori di queste 3 variabili;
-la condizione di attivazione di una condizione se
per eseguire azioni differenti in base ai diversi valori della variabile (es. se 1, mostra messaggio, se 2, muovi evento, se 3...);
-visualizzare un valore nei messaggi
per far leggere al giocatore quante volte ha salvato, quanti nemici ha ucciso ecc... ecc...;
In genere le variabili vengono usate principalmente per questi 3 scopi. Per modificare una variabile, usate il comandi "cambia variabili" (control variables): ? possibile uguagliare, sommare, sottrarre, dividere e moltiplicare una variabile scelta per un altra variabile, un valore predefinito o per un valore da voi scelto.
Ora passiamo ai cicli: cosa sono? Nulla pi? di quello che il nome suggerisce: un ciclo. Infatti, Quando avviate un ciclo con l'apposito comando "ciclo" (loop), il programma eseguir? tutto ci? che ? contenuto al suo interno, contuniamente, salvo 4 eccezioni:
-dimenticate acceso il ciclo e continua all'infinito finch? non si brucia il pc
-chiudete il gioco
-salta fuori un errore all'intern del ciclo (e quindi si pianta il gioco xD)
-usate il comando "Fine ciclo" (break loop)
All'interno di un ciclo si pu? mettere tutto quello che volete, come in una "condizione se", ma di solito, per farlo terminare, si mette una "condizione se", con all'interno (se soddisfatta la condizione di attivazione) il comando "Fine ciclo". Si pu? anche sfruttare una variabile: mettendo alla fine del ciclo il comando per aggiungere a una variabile il valore 1 e una "condizione se" con condizione di attivazione un determinato valore della variabile scelta.

<>Ciclo
<>Se var[001:ciclo] == 5
<>Messaggio: "S?, ora va bene."
<>Fine Ciclo
<>End
<>Cambia Variabile [001:ciclo] += 1
<>Messaggio: "Non ancora."
<>Ripeti
<>Messaggio "Il ciclo ? finito"


Cos? il giocatore vedr? la scritta "Non ancora" per 5 volte, poi il ciclo finir?.
Bene, si presuppone che ora sappiate le basi della programmazione via eventi, salvo per 2 lezioni che faremo pi? avanti, per rendere pi? leggero l'apprendimento. Le prossime lezioni saranno meno rigide, dato che ci vorr? pi? fantasia: ci saranno pi? esempi concreti e meno spiegazioni teoriche, quindi dovrebbe essere pi? facile. Alla prossima ^^
 

Con questo termina il ciclo delle 4 lezioni base: finita la prossima interrogazione, questi 4 allegati li tolgo e metto un link a un documento unico ^^

EDIT: Clicca QUI per scaricare l'archivio delle 4 lezioni.

Edited by Guardian of Irael

http://img396.imageshack.us/img396/5114/bannerqj2.jpg

 

And the Dragon will Rise with the Twilight Star...

...again.

 

Sei nuovo? Leggi qui.

 

http://img505.imageshack.us/img505/210/banneradtnewnt7ew3.jpg

Link to comment
Share on other sites

  • 3 weeks later...

ti ho dato la forza di andare avanti? xD

Cmq ora prendo e leggo dopo edito e faccio i miei commenti..

 

EDIT:

Letto velocemente, utile, basilare con qualche aggiunta piu complessa (tonalità wow)

complimenti...Aspetto new interrogazione

Edited by lorenman

I mei premi su RPG2s
2o posto nel Xmas contesti 2007

Appena lo ho visto lo ho dovuto mettere in firma ;):
 
<div style="margin:20px;margin-top:5px" "="">

 



Il Manifesto del Making Italiano

SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cio� se voi dimostrate di essere interessati a ci� che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perci� quello che dobbiamo fare �: leggere, leggere, leggere, postare, postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ci� che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'� costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ci� significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerit� e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi � contrario a questa cosa, pu� pure continuare cos� ma � una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi � d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!

 

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Aggiunta quarta ed ultima lezione di teoria, con questa saprete tutte le basi (si spera xD).

Sempre a disposizione, se volete chiarimenti o ulteriori spiegazioni, chiedete qui ^^

http://img396.imageshack.us/img396/5114/bannerqj2.jpg

 

And the Dragon will Rise with the Twilight Star...

...again.

 

Sei nuovo? Leggi qui.

 

http://img505.imageshack.us/img505/210/banneradtnewnt7ew3.jpg

Link to comment
Share on other sites

  • 7 months later...
 Share

×
×
  • Create New...