Jump to content
Rpg²S Forum
  • 0

RGSS3, How do to..?


Freddo
 Share

Question

Buon Salve! :D
Mi sto immischiando in affari loschi, in quegli affari che quando ne sei dentro è difficile uscirne fuori!
Questi affari si chiamano: IMPARARE L'RGSS3
Premessa: Ho scaricato, stampato e sto leggendo la guida del buon Holy87 al quale volevo fare i più sinceri complimenti!
Volevo provare a testare quel che ho imparato!

1) Come fare per far apparire una scritta sullo schermo?
Dopo svariate risposte siam giunti alla conclusione che:

 

#------------------------------------------ScrittaPersonale---------------------------------------#
scritta = Bitmap.new(100,100) #Dimensioni rettangolo immagine (x,y)
scritta.draw_text(0,-5,100,20,"Scritta") #Posizione(x,y), Geometria(lung,larg), Valore scritta
@sprite = Sprite.new #Creo uno sprite
@sprite.bitmap = scritta #Assegno l'immagine allo sprite
#-------------------------------------------------------------------------------------------------#

 

Dove il tutto va messo in Scene_Map in all'interno di "def Start" dello script!

Involontariamente abbiamo anche imparato ad usare le messagebox, in questo modo:

Evento -> Script -> msgbox("TESTO")

Semplicissimo! Alla prossima domanda! Ringraziamenti: Holy87, Final Andrea.

Edited by Freddo
Progetto in corso: L'Isola
Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

Leggi a pagina 31 della guida :wink:

 

Per il colore non ho capito cosa intendi.

Edited by Holy87

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Leggi a pagina 31 della guida :wink:

 

Per il colore non ho capito cosa intendi.

A pagina 31 mi dice il semplice comando "p"

Però non riesco a capire..

In un progetto ho inserito in evento automatico questo:

SCRIPT: p "Ciao"

Però non succede nulla...

Puoi scrivermi uno script esempio che mi fa apparire un "Ciao" al centro della schermata?

Per colore intendo quello del font.. Per esempio questo Ciao facciamolo rosso va! :D

 

Grazie Holy :) Senza spiegazioni dettagliate è molto difficile capire.. ;)

Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

C'è scritto anche questo:

Nell’RGSS3 di RPG Maker VX Ace, questo comando ha una funzione abbastanza diversa. L’esecuzione del gioco sarà apparentemente normale, ma se noi abbiamo parallelamente aperto la finestra di debug, vedremo il messaggio stampato da riga di comando [...]

Per far sì invece che nell’RGSS3 compaia la classica finestra di pop-up, dobbiamo usare questo comando

msgbox(testo_da_mostrare)

 

Quindi se usi VX Ace non devi usare print per mostrare una finestra di dialogo, ma msgbox.

 

Con print invece stampa SOLO sulla finestra di debug (cliccando nell'editor: Gioco -> mostra la console, verrà avviato un terminale di debug accanto alla finestra di gioco).

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

C'è scritto anche questo:

 

 

Quindi se usi VX Ace non devi usare print per mostrare una finestra di dialogo, ma msgbox.

 

Con print invece stampa SOLO sulla finestra di debug (cliccando nell'editor: Gioco -> mostra la console, verrà avviato un terminale di debug accanto alla finestra di gioco).

Ok non ci siam capiti xD Ti faccio un esempio stupido: mi disegno una barra della vita che viene visualizzata durante tutto il gioco.

Sopra questa barra della vita deve apparire la scritta : "VITA" / "VITAMAX"

Non so se mi segui... Quello di cui ho bisogno io è quello che in visual basic si chiama Label

Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

La funzione "print" o abbraviata "p" stampa la scritta nella console.

 

Dalla guida ho visto che molto simile al php si usa print

Io non penso sia molto simile al php, più che altro è la sintassi del C++ ad essere simile al php.

A finale nella programmazione le cose da conoscere sono sempre quelle.

 

 

Ok non ci siam capiti xD Ti faccio un esempio stupido: mi disegno una barra della vita che viene visualizzata durante tutto il gioco.

Sopra questa barra della vita deve apparire la scritta : "VITA" / "VITAMAX"

Non so se mi segui... Quello di cui ho bisogno io è quello che in visual basic si chiama Label

Ah intendi il Label in Basic...era tutto più facile:

Label1.Text = qualcosa

Qui invece è tutto più complicato...prima di dover stampare il testo, devi impostare la font, il colore e la posizione.

Sfogliando i contenuti del manuale inglese di RPG Maker VX Ace, sembrerebbe che:

  • Font.new([name[, size]]) -> Crea un nuovo oggetto font. Al posto di name "il nome", e al posto di size la grandezza.
    Font.exist?(name) -> Utile per verificare che la font sia stata creata con successo. Questa funzione sfrutta l'operatore "ternario" (consideriamolo come un a specie di if semplificata), se la fonte esiste restituisce il valore "true", cioè vero. In caso contrario falso.

Abbiamo poi delle proprietà da attribuire al font, quali:

 

  • size: Definisce la taglia. Se non inserito avrà il valore default.
  • bold: la considera in grassetto se posta uguale a true.
  • italic: la considera in corsivo se posta uguale a false.
  • shadow: inserisce un ombra alla font.
  • color : specifica il colore della font, in metodo Alpha.
  • name: specifica la font utilizzata -> (font.name = ["Myriad", "Verdana"])

Poi ci sono molte altre proprietà. Per stampare il testo prova questo:

 

  • draw_text(x, y, width, height, str[, align])

Poi ti ripeto, io non ho mai studiato niente di RGSS3, ma di C++, quindi è grazie alle conoscenze del C++ che ho potuto darti un piccolo aiuto. Ovviamente ho sfogliato i contenuti di rpg maker vx ace (consiglio consultarli). Prova a fare tentativi e dimmi se ci riesci. Nel caso non ci riesci, dobbiamo aspettare Holy! :wink:

Link to comment
Share on other sites

  • 0

No... Proprio non ci riesco... Mi da l'errore in Game interpreter... Comunque ho citato il PHP perché ne conosco le basi, il C++ è un buco nero per me! ;)

 

In attesa del buon Holy :D

Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

Aaah ecco! Dannato me che non leggo fino in fondo XD

 

Allora, semplicemente... La scritta è una grafica giusto? Quindi va messa in un bitmap. Il bitmap è un'immagine, che poi verrà assegnato ad uno sprite.

scritta = Bitmap.new(x,y)
#x ed y sono rispettivamente le dimensioni del rettangolo dell'immagine
colore_rosso = Color.new(255,0,0)#colore rosso
scritta.font_color = colore_rosso #imposto il colore del font
scritta.draw_text(x,y,lung,larg,"scrittachevuoi")#scrivi il testo nell'immagine
@sprite = Sprite.new#creo uno sprite
@sprite.bitmap = scritta#assegno l'immagine allo sprite

Come per magia, comparirà la scritta sullo schermo!

È opportuno che lo sprite sia una variabile d'istanza, altrimenti potrebbe sparire subito.

Edited by Holy87

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Aaah ecco! Dannato me che non leggo fino in fondo XD

 

Allora, semplicemente... La scritta è una grafica giusto? Quindi va messa in un bitmap. Il bitmap è un'immagine, che poi verrà assegnato ad uno sprite.

scritta = Bitmap.new(x,y)

#x ed y sono rispettivamente le dimensioni del rettangolo dell'immagine

colore_rosso = Color.new(255,0,0)#colore rosso

scritta.font_color = colore_rosso #imposto il colore del font

scritta.draw_text(x,y,lung,larg,"scrittachevuoi")#scrivi il testo nell'immagine

@sprite = Sprite.new#creo uno sprite

@sprite.bitmap = scritta#assegno l'immagine allo sprite

Come per magia, comparirà la scritta sullo schermo!

È opportuno che lo sprite sia una variabile d'istanza, altrimenti potrebbe sparire subito.

Ok, 2 domande:

1)In scritta.draw_text(x,y,lung,larg,"")

La X e la Y sono la posizione della scritta giusto?

Lung e larg cosa sono? E come vanno assegnate?

 

2)Ok questo è il codice, adesso come si fa a farlo funzionare in automatico?

 

Non c'è cosa migliore di una guida "passo passo" :D

Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

draw_text è un metodo della classe bitmap, per saperne tutti i dettagli apri la guida del programma (premendo F1) e selezionando RGSS->Game Library->Bitmap.

 

In pratica x e y sono le posizioni nella bitmap, lung e larg sono rispettivamente lunghezza e altezza del rettangolo dov'è inserito il testo. Opzionalmente, puoi scegliere anche l'allineamento del testo aggiungendo il parametro dopo la stringa:

0: allineamento normale a sinistra

1: testo centrato

2: testo allineato a destra.

 

Semplicemente lo metti nel metodo "start" di Scene_Map :D

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Mi da un errore alla partenza dicendo: undefined method 'font_color=' for #<Bitmap:0x8a59f1c>

 

Che significa? D:

 

EDIT: Immaginavo... Ho tolto le stringhe dove dichiaravo il colore e lo assegnavo e funziona tutto...

A dirla tutta è un pò scomodo per la location sul form, però mi ci abituerò...

 

Ascolta, metti caso mi serve scrivere una variabile, invece di "scritta che vuoi" cosa devo scrivere???

 

Dopo questa la mia prima domanda è stata completamente soddisfatta! Provvederò ad aggiornare il Topic in modo da rendere tutto più accessibile e ordinato per chi l vedrà! :)

Edited by Freddo
Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

Scusami, lapsus.

font.color, non font_color.

 

Per la variabile, semplicemente ci metti una variabile e verrà convertita in stringa.

puoi anche scriverci

draw_text(0,0,200,25,"HP: "+variabile)

oppure, con la funzione sprintf

testo = sprintf("HP: %d",variabile)

draw_text(0,0,200,25,testo)

Edited by ProGM

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Scusami, lapsus.

font.color, non font_color.

Ah dicevo io, mi sembrava in effetti strano!

 

@Messaggio modificato da ProGM il Ieri, 23:32

 

Questo appare sotto al messaggio di Holy...è un bug o cosa?

Link to comment
Share on other sites

  • 0

Scusami, lapsus.

font.color, non font_color.

 

Per la variabile, semplicemente ci metti una variabile e verrà convertita in stringa.

puoi anche scriverci

draw_text(0,0,200,25,"HP: "+variabile)

oppure, con la funzione sprintf

testo = sprintf("HP: %d",variabile)

draw_text(0,0,200,25,testo)

Ho provato a fare cosi

 

#------------ScrittaPersonale------------#

scritta = Bitmap.new(100,100)

scritta.draw_text(0,-5,100,20,"Hp: " + $game_variables[0] + "") #Line 22

@sprite = Sprite.new

@sprite.bitmap = scritta

#----------------------------------------#

 

Ma mi viene errore: Script 'Scene_Map' line 22: TypeError occurred! Can't convert Fixnum into String!

 

Non so se la sintassi è sbagliata oppure se si fa in un altro modo... Consigli????

Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

Ho provato a fare cosi

 

#------------ScrittaPersonale------------#

scritta = Bitmap.new(100,100)

scritta.draw_text(0,-5,100,20,"Hp: " + $game_variables[0] + "") #Line 22

@sprite = Sprite.new

@sprite.bitmap = scritta

#----------------------------------------#

 

Ma mi viene errore: Script 'Scene_Map' line 22: TypeError occurred! Can't convert Fixnum into String!

 

Non so se la sintassi è sbagliata oppure se si fa in un altro modo... Consigli????

Prova a scrivere così

$game_variables[0].to_s

 

@Final: no, probabilmente Pro mi ha modificato il messaggio per aggiustare il code ;)

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

  • 0

Prova a scrivere così

$game_variables[0].to_s

 

@Final: no, probabilmente Pro mi ha modificato il messaggio per aggiustare il code ;)

Perfetto adesso funziona! Ora facciamo un esempio:

Durante il gioco io ho la variabile "Soldi" (ID01) che viene visualizzata tramite lo sprite "Scritta"

Ad un certo punto un evento mi cambia il valore della mia variabile!

Come si fa a far Re-Visualizzare il valore sullo sprite?

Progetto in corso: L'Isola
Link to comment
Share on other sites

  • 0

Per aggiornare il testo devi ricreare una nuova bitmap e ri-assegnarla allo sprite. Ricapitolando, rendiamo in modo più semplice possibile la creazione dell'immagine.

class Scene_Map def testo_bitmap
bitmap = Bitmap.new(300,40)
bitmap.font.color = Color.new(255,0,0)
text = sprintf("HP: %d/%d",$game_actors[1].hp,$game_actors[1].maxhp)
bitmap.draw_text(0,0,300,40,text)
@old_hp = $game_actors[1].hp #riaggiorno oldhp
return bitmap
end

def crea_immagine_testo
@testo_hp = Sprite.new
@testo_hp.bitmap = testo_bitmap
@testo_hp.z=99
@old_hp = 0
end

def aggiorna_bitmap
@testo_hp.bitmap = testo_bitmap if @old_hp != $game_actors[1].hp
end


alias tt_start start
def start
tt_start
crea_immagine_testo
end

alias tt_update update
def update
tt_update
aggiorna_bitmap
end

alias tt_terminate terminate
def terminate
tt_terminate
@testo_hp.bitmap.dispose
@testo_hp.dispose
end
end

 

Allora, facile facile. Questo script va messo sotto Scene_Map (in genere in materials)

Cosa fa? crea lo sprite in start e con il metodo testo_bitmap gli assegna la bitmap creata con gli HP dell'eroe. A questo punto, ad ogni update del gioco viene rieseguito il testo_bitmap, cioè viene ricreato il testo e riassegnato allo sprite, ma SOLO quando davvero gli HP dell'eroe sono cambiati (per questo esiste la variabile @old_bitmap che tiene conto degli hp precedenti). Ricreare una bitmap ad ogni frame è pesantuccio, e potrebbe influire inutilmente sulle prestazioni del gioco. Per questo è meglio non aggiornarlo sempre ad ogni frame.

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

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...