Rpg²S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Vai al contenuto

Rpg²S Forum uses cookies. Read the Privacy Policy for more info. To remove this message, please click the button to the right:    I accept the use of cookies

Screen Contest #90

Kamikun






  • Si prega di effettuare il log in prima di rispondere
[Ciclo] Le basi della programmazione - - - - -

    DracoMT2
  • Utente avanzato

  • Utenti
  • Rens: 0
  • 0
  • StellettaStellettaStelletta
  • 488 messaggi
  • Sesso:Maschio
  • Abilità:Novizio

#1 Inviato 07 December 2007 - 13:41 PM

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.


Modificato da Guardian of Irael, 04 July 2013 - 19:39 PM.

Immagine inserita

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



Sei nuovo? Leggi qui.

Immagine inserita

    DracoMT2
  • Utente avanzato

  • Utenti
  • Rens: 0
  • 0
  • StellettaStellettaStelletta
  • 488 messaggi
  • Sesso:Maschio
  • Abilità:Novizio

#2 Inviato 24 December 2007 - 17:17 PM

Aggiunta seconda lezione ^^
Immagine inserita

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



Sei nuovo? Leggi qui.

Immagine inserita

    lorenman
  • Utente avanzato

  • Utenti
  • Rens: 49
  • 0
  • StellettaStellettaStelletta
  • 260 messaggi
  • Sesso:Maschio
  • Provenienza:Roma
  • Abilità:Novizio

#3 Inviato 24 December 2007 - 17:27 PM

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

Modificato da lorenman, 24 December 2007 - 17:30 PM.

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" "="">

Spoiler


    DracoMT2
  • Utente avanzato

  • Utenti
  • Rens: 0
  • 0
  • StellettaStellettaStelletta
  • 488 messaggi
  • Sesso:Maschio
  • Abilità:Novizio

#4 Inviato 26 January 2008 - 11:06 AM

Aggiunta terza lezione. Alla quarta finisce il ciclo delle basi e inizia quello di programmazione un po' più pratica ^^
Immagine inserita

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



Sei nuovo? Leggi qui.

Immagine inserita

    DracoMT2
  • Utente avanzato

  • Utenti
  • Rens: 0
  • 0
  • StellettaStellettaStelletta
  • 488 messaggi
  • Sesso:Maschio
  • Abilità:Novizio

#5 Inviato 26 February 2008 - 14:57 PM

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 ^^
Immagine inserita

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



Sei nuovo? Leggi qui.

Immagine inserita

    Magic Man
  • Nuovo Arrivato

  • Utenti
  • Rens: 0
  • 0
  • Stelletta
  • 6 messaggi

#6 Inviato 24 October 2008 - 15:30 PM

Grazie mi sono molto utili le tue lezioni




  • Feed RSS