Vai al contenuto


Toggle Chat RM - Chat Apri la Chat in un popup

E' severamente vietato richiedere supporto su RPG Maker in chat!
@  Pech93 : (22 May 2012 - 06:42 PM) night MP
@  Pech93 : (22 May 2012 - 06:42 PM) Ciaoooooooooo
@  Night : (22 May 2012 - 06:35 PM) bene, mi sto allenando sui disegni, ho in mente molte scene disegnate da presentare nel gioco
@  Night : (22 May 2012 - 06:35 PM) so di essere un po' in ritardo, ma rispondo lo stesso XD
@  NoxChibi : (22 May 2012 - 02:59 PM) hi night come procede il tuo progetto?
@  Night : (22 May 2012 - 02:56 PM) buongiornooo :3
@  MihaChan : (22 May 2012 - 01:20 PM) lol
@  MihaChan : (22 May 2012 - 01:20 PM) !!oaiC
@  Melosx : (22 May 2012 - 12:47 PM) ^.^ !!nahCahiM oaiC
@  MihaChan : (22 May 2012 - 12:41 PM) buonsalve
@  Melosx : (22 May 2012 - 12:28 PM) cmq buongiorno a tutti
@  Melosx : (22 May 2012 - 12:28 PM) Dimmi Nox
@  MihaChan : (22 May 2012 - 12:07 PM) Illusi ghgh
@  MihaChan : (22 May 2012 - 12:06 PM) Gli piacerebbe.... xDDDD
@  MihaChan : (22 May 2012 - 12:06 PM) e Francesi che dicono che il Ferrero Rocher è Francese....
@  MihaChan : (22 May 2012 - 12:06 PM) Tedeschi che dicono che la Nutella, il Kinder Cioccolato e L'ovetto Kinder sono tedeschi...
@  MihaChan : (22 May 2012 - 12:06 PM) Ah
@  NoxChibi : (21 May 2012 - 10:20 PM) melosx
@  NoosiTD : (21 May 2012 - 05:10 PM) lololo
@  WolfHound : (21 May 2012 - 11:06 AM) lululu

[RGSS/RGSS2]Cicli


  • Per cortesia connettiti per rispondere
2 risposte a questa discussione

#1 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 17 December 2009 - 08:54 PM

Immagine inserita


Eccoci all'ultima lezione che spiega le basi dell'RGSS ^^
Vi ricordo che con queste lezioni non diventerete degli scripter,ma vi costruite delle basi su cui poter partire,e capirete anche,come funzionano gli script.

Bene.
In quest'ultima lezione,tratteremo l'argomento relativo ai cicli.

Cosa sono i cicli?
I cicli sono 'strutture' che consentono di ripetere lo stesso pezzo di codice più volte.

Cicli: loop
Iniziamo con una struttura fondamentale:il loop.
Il loop permette di creare un codice che verrà ripetuto di continuo.
Vediamo subito un esempio pratico:
var = 1
loop do
print var
var += 1
end
Se utilizziamo questo codice,visualizzeremo una finestra con valori sempre diversi.
Ovviamente,possiamo anche rompere il ciclo in qualsiasi momento:
var = 1
loop do
print var
if var == 10
break
else
var += 1
end
end
Fondamentalmente,questo codice valuterà ogni volta,se la variabile ha il valore 10.
Se lo fa,richiama poi il comando 'break'(pausa),che interromperà il ciclo.
In caso contrario,aggiunge un valore di 1 alla varibile.

Un'altra parola chiave è "next",che serve per interrompere il ciclo senza fermarlo del tutto. Praticamente il giro attuale si interrompe e il ciclo riprende dal giro successivo.
Per esempio qui faremo saltare il ciclo in cui var è 4 facendolo arrivare direttamente a 5:
var = 1
loop do
print var
if var == 10
break
else
if var == 3
var += 2
next
end
var += 1
end
end
In questo modo tutto quello che viene dopo "next" non viene eseguito e il ciclo continua normalmente col seguito.
P.S.: Avremmo potuto scrivere anche var += 1 al posto del 2 ed evitare il next, tanto il valore arriva lo stesso a 5.
Era però utile a livello di esempio fare in questo modo.

Possiamo prendere esempio anche qui,dai cicli di rpgmaker ^^

Cicli: while
Forse una delle strutture che mi piace di più :P
Prendete l'esempio del codice messo in loop,siamo in grado di ridurlo in questo modo:
var = 1
while var <= 10
print var
var += 1
end
Leggiamo quello che abbiamo fatto con il mini codice:
-mentre il valore della variabile è inferiore o uguale a 10,mostra il valore della variabile e aggiungi 1 al suo valore.

Cicli: until
Questo ciclo,potremmo definirlo come 'fino a..'.
Prendiamo l'esempio del codice postato su while,ma scriviamolo con until:
var = 1
until var == 11
print var
var += 1
end
Possiamo notare subito una differenza:il numero che ho utilizzato,è l'11.
Voi vi chiederete,perchè?
Per evitare possibili confusioni,possiamo dire che "until" è il contrario di "while" e,cioè,che mentre "while" continua il ciclo se la condizione ("var <= 10" in questo caso) risulta vera,"until" si ferma non appena la condizione è vera,quindi continua il ciclo mentre è falsa,quindi quando il valore arriverà a 11,il codice dentro il ciclo non verrà più eseguito,in quanto la condizione è vera(discorso contort?<img src='http://rpgmkr.net/forum/public/style_emoticons/default/xd.gif' class='bbc_emoticon' alt='XD' />)
Se avessimo messo "var <= 10",sarebbe stata vera fin dall'inizio e il ciclo non sarebbe proprio partito.

Cicli: for
Il ciclo for, a differenza degli altri, viene eseguito per un numero di volte prestabilito, cioè definito come numero e non come condizione. Faccio un esempio:
for var in 1..10
print var
end
Vediamo di spiegare tutto in dettaglio.
"1..10" è il numero di volte che deve essere eseguito il codice,10 volte in questo caso.
"var" è una variabile che viene creata e gestita dal ciclo for.
Vediamo infatti che,all'interno del ciclo,viene usata senza essere stata prima creata e che manca il codice per farla aumentare di valore;se eseguiamo il codice, però, darà gli stessi risultati che hanno dato gli altri cicli.
Ad ogni giro, quindi, il ciclo for assegna alla variabile "var" il numero del giro,in questo caso specifico (vedremo gli altri casi).
Il valore di "var" sarà perciò prima 1 poi 2 poi 3 fino ad arrivare a 10.
Potevamo anche mettere altri numeri, ad esempio "5..20" e, sarebbe partita da 5 fino ad arrivare a 20. Possiamo usare anche numeri negativi, ma l'importante è che il secondo deve essere maggiore del primo.
Da notare che il 10 dell'esempio viene eseguito. Se mettiamo tre puntini anzichè due (potete vedere molti esempi negli script), l'ultimo numero non viene eseguito e il ciclo si ferma a 9. Questa cosa è utile soprattutto in casi del genere:
array = ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
for i in 0..array.size - 1
  print array[i]
end
"array.size" restituisce 4, cioè il numero di elementi dentro l'array. Noi sappiamo però che gli elementi degli array vanno dal numero 0 al numero 3 e quindi il 4 che ci viene restituito deve essere scalato di 1. Possiamo usare i tre puntini in questo modo:
array = ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
for i in 0...array.size
  print array[i]
end
e ottenere lo stesso risultato.
In questo esempio abbiamo scritto "array" per far apparire la stringa contenuta. Con il ciclo for, però, possiamo usare un altro metodo:
array = ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
for valore in array
  print valore
end
così come:
for valore in ["1º Valore", "2º Valore", "3º Valore", "4º Valore"]
  print valore
end
La variabile "valore",anzichè il numero,conterrà in questo caso direttamente il valore di ogni elemento dell'array,che può essere passato come variabile (1° caso) o specificato direttamente (2° caso).


Bene,con questa lezione abbiamo finite di spiegare le basi per introdurvi nel mondo dell'RGSS ::P:
Vi ricordo che non è molto difficile imparare le basi,ma bisogna avere pazienza e voglia ^^
Vi lascio all'esercizio(che si son fatti sempre più difficili),sull'argomento :sorr3:

Esercizio 6:
- Dato l'array:
a = [4, 6, 7, 4, 7, 2]
creare un ciclo for che dimezzi i valori e li rimetta nell'array.
- Creare un ciclo a scelta le cui condizioni porteranno a non farlo eseguire (cioè scriverlo correttamente a livello di sintassi ma che anziche ciclare per un determinato numero di volte, dovrà ciclare esattamente 0 volte)



La lezione è stata scritta interamente da Ally e mikb89,pertanto,ne è vietata la copia senza l'autorizzazione da parte degli autori.
Copyright © [RGSS/RGSS2]Cicli 2011. All Rights Reserved.

Immagine inserita
Spoiler

#2 OFFLINE   kekkorider

kekkorider

    Amministratore

  • Amministratori
  • 399 Messaggi:
  • Progetto 2k/2k3:
    Valya - Eden Divide
  • Progetto XP:
    Restricted - Project 15

Inviato 17 December 2009 - 10:29 PM

quanto tempo che non si vedeva una lezione http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif

bravu ally,domani me la leggo bene a modo :D

#3 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 18 December 2009 - 05:11 PM

Grazie =D
Le prossime lezioni saranno meno difficili http://rpgmkr.net/fo...tyle_emoticons/default/xd.gif
Immagine inserita
Spoiler




1 utente(i) stanno leggendo questa discussione

0 utenti, 1 ospiti, 0 utenti anonimi