Jump to content
Rpg²S Forum

Usare Variabili e Switch con RGSS


Julo
 Share

Recommended Posts

Uso di Variabili e Switch nel Ruby

 

Allora, faccio questa miniguida perchè vedo che tanti fanno la stessa domanda:

 

"Come modifico le switch tramite Ruby? Come modifico le Variabili tramite Ruby?"

(naturalmente su altri forum xDDDDD)

 

beh, facile (xD) e ve lo spiego ora.

 

Se tramite script devi modificare una switch per attivarla/disattivarla devi mettere questa stringa:

 

$game_switches[IDswitch] = true / false

 

spiegazione: IDswitch è il numero della switch e va messo senza gli zeri (se è numero 5 non va scritto 005, ma 5)

true / false sarebbe se la vuoi attivare (true) o se la vuoi disattivare (false)

ES:

$game_switches[4] = true

 

adesso che ci siamo capiti (spero °°) per le switch, passiamo alle variabili, che è più o meno la stessa cosa...

 

Se tramite script devi modificare una variabile devi mettere questa stringa:

 

$game_variables[IDvariabile] = valore variabile

 

spiegazione: IDvariabile è il numero della variabile che, come nelle switch, va messo senza zeri

valore variabile è il valore che vuoi assegnare alla variabile (come ad esempio un numero)

ES:

$game_variables[6] = 24

 

OK! Abbiamo finito la parte per modificare switch/variabili, adesso però se uno vuole far visualizzare una variabile?

Molto facile, la variabile è salvata in $game_variables[iD] e quindi si può dedurre (almeno chi ne sa un pochino di scripting O_O) che basta bettere un to_s alla fine, quindi

$game_variables[IDvariabile].to_s

il ".to_s" serve per trasformare il valore della variabile in "stringa", cioè che il valore non è più un "numero" ma è una scritta che raffigura questo numero (spero di essermi spiegato bene).

adesso faccio un esempio e poi finish (quasi xD)

 

Allora, io voglio mettere che in una mia window creata mi compaia la variabile numero 52, scriverò così nel "def refresh" (preso esempio xD)

self.contents.draw_text(50, 60, 100, 32, $game_variables[52].to_s)

così mi crea il testo a distanza alle coordinate x,y rispettivamente 50,60 e me lo crea che come larghezza massima avrà 100 e come altezza 32 (il 32 è una specie di base, poi il 100 lo potete cambiare a seconda di quanto volete che sia il massimo di larghezza)

 

Stessa cosa si può fare con le switch, ma non so a che può servire mostrare una switch O_O al massimo la possiamo usare così (faccio esempio)

if $game_switches[3] == true
#azioni da compiere se la switch numero 3 è attivata
else
#azioni da compiere se la switch numero 3 è disattivata
end

 

naturalmente verrebbe uguale anche con le variabili (faccio esempio)

if $game_variables[6] == 34
#azioni da compiere se la variabile numero 6 è  34
else
#azioni da compiere se la variabile numero 6 è 34
end

 

Beh, spero serva a qualcuno ^^ se serve farò aggiornamenti O_O

Edited by Julo

Mammina... perchè mettono papà sotto terra?

 

Ehi, signori, perchè lo mettete sotto terra?

 

No! Non voglio! Se lo fate...

 

...il mio papà non può andare al lavoro!

 

Papà ha detto che deve lavorare tanto!

 

No! Non lo mettete sotto terra!

 

 

 

PAPA'!!

Link to comment
Share on other sites

Bravo, spiegato molto bene.

 

Aggiungo una piccola cosina, che a me é successa e potrebbe interessare un po' tutti:

Se state per esempio facendo una IF sugli switch del gioco

 

if $game_switches[3] == true
#azioni da compiere se la switch numero 3 è attivata
else
#azioni da compiere se la switch numero 3 è disattivata
end

 

e non vi funziona...

Controllate sempre di aver messo l'== e di non averlo scambiato con l'= e basta (che ricordo essere sbagliato, in quanto é una funzione di assegnamento).

quindi == GIUSTO nelle IF

= e basta é SBAGLIATO.

Non é detto quindi che l'errore stia per forza nella dicitura $game_switches[3] ...

Purtoppo nel ruby bisogna fare moltissima attenzione, la minima virgola sbagliata e non funziona piu' nulla.

http://www.browsergamer.net/banner/190x60/browsergamer.jpg http://www.medioshopping.com/img/medioshopping_logo_mini.png

 

www.havana24.net

Premi vinti

 

 

http://www.rpg2s.net/gif/GC_bestof1.gif http://www.rpg2s.net/gif/GC_bestoftool1.gif

http://www.rpg2s.net/gif/GC_musica3.gif http://www.rpg2s.net/gif/GC_effettispeciali1.gif http://www.rpg2s.net/gif/GC_effettispeciali1.gif http://www.rpg2s.net/gif/GC_gameplay2.gif http://www.rpg2s.net/gif/GC_mapping1.gif http://www.rpg2s.net/gif/GC_programmazione1.gif http://www.rpg2s.net/gif/GC_programmazione1.gif http://www.rpg2s.net/gif/GC_trama1.gif http://www.rpg2s.net/gif/GC_grafica1.gif http://www.rpg2s.net/gif/GC_grafica1.gif http://www.rpg2s.net/gif/GC_premio3.gif http://www.rpg2s.net/gif/GC_premio3.gif http://www.rpg2s.net/gif/GC_premio1.gif http://www.rpg2s.net/gif/GC_premio1.gif http://www.rpg2s.net/gif/GC_premio1.gif http://www.rpg2s.net/gif/GC_premio1.gif

 

http://www.rpg2s.net/awards/bestgraphic1.jpg http://www.rpg2s.net/awards/bestmaker1.jpg

http://www.rpg2s.net/awards/bestmapper1.jpg http://www.rpg2s.net/awards/bestprogrammer3.jpg

http://rpg2s.net/gif/SCContest1Oct.gif http://i54.tinypic.com/15cikht.gif http://img42.imageshack.us/img42/3015/terzoposto.png

 

 

Link to comment
Share on other sites

sì giusto, lo dovrei sapere che si sbaglia facilmente tra = e == xD in classe non faccio altro che correggere questo agli amici °_°

 

comunque thz :*

Mammina... perchè mettono papà sotto terra?

 

Ehi, signori, perchè lo mettete sotto terra?

 

No! Non voglio! Se lo fate...

 

...il mio papà non può andare al lavoro!

 

Papà ha detto che deve lavorare tanto!

 

No! Non lo mettete sotto terra!

 

 

 

PAPA'!!

Link to comment
Share on other sites

Ben fatto Julo, molto chiaro. :chirol_iei2:

 

Bravo, spiegato molto bene.

 

Aggiungo una piccola cosina, che a me é successa e potrebbe interessare un po' tutti:

Se state per esempio facendo una IF sugli switch del gioco

 

if $game_switches[3] == true
#azioni da compiere se la switch numero 3 è attivata
else
#azioni da compiere se la switch numero 3 è disattivata
end

 

e non vi funziona...

Controllate sempre di aver messo l'== e di non averlo scambiato con l'= e basta (che ricordo essere sbagliato, in quanto é una funzione di assegnamento).

quindi == GIUSTO nelle IF

= e basta é SBAGLIATO.

Non é detto quindi che l'errore stia per forza nella dicitura $game_switches[3] ...

Purtoppo nel ruby bisogna fare moltissima attenzione, la minima virgola sbagliata e non funziona piu' nulla.

 

Sono TUO_PADRE™ :chirol_gusun:

Link to comment
Share on other sites

  • 1 year later...

emm... scusa se te lo dico... ma non mi funziona nemmeno mezzo di questi comandi...

tutte le volte che provo a modificare $game_switches[n] (con un numero al posto di n)

o provo a vedere se è vero o falso... mi dice:

 

Script 'Nomescript' Line (n): NoMethodError occurred.

undefined method `[]=' for nil:NilClass

 

Questo nel caso in cui gli do il comando, all'interno di una classe:

$game_switches[n] = false - nell'inizialize

 

Invece nel caso in cui do il comando:

if $game_switches[n] == false - sempre in una classe

 

mi compare quest'errore:

 

Script 'Nomescript' Line (n): NoMethodError occurred.

undefined method `[]' for nil:NilClass

 

Pensavo che dipendesse dall'SDK questo problema... allora ho provato a spostare lo script al di fuori dell'SDK, ma il problema rimane cmq... potreste spiegarmi come fare pls? XD

spero di non aver sbagliato posto per mettere la richiesta... nel caso in cui avessi sbagliato cancellate il post

 

 

Membro # 8-8-8 [Hachi] della:

http://img3.imageshack.us/img3/9636/bannergm.png

Link to comment
Share on other sites

le possibilità sono:

1) questo script si attiva prima di Scene_Title, quindi le switch non vengono ancora caricate ^^

2) hai sbagliato a scrivere XD

 

posta il codice pliz °O°

Progetti:

 http://i.imgur.com/jmLkIqi.png

http://i54.tinypic.com/2rh4ojq.png

https://github.com/ProGM

 

Crea anche tu il tuo gioco per Game Boy!
http://rpg2s.net/gif/SCContest3Oct.gifhttp://www.rpg2s.net/img/fablecontest1st.pnghttp://i43.tinypic.com/1zokd2s.png


http://i.imgur.com/BEu6G.gif

http://i.imgur.com/H1ARhq7.gif

http://i.imgur.com/Af6ijZN.gif

AOT: Associazione Odiamo la Telecom:

http://i.imgur.com/aYJs89E.png

"4 gattini... 4 stelline... E le 4 paperelle non ci stavano :3"

Flame


http://i30.tinypic.com/i27ypj.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...