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
RGSS3, How do to..?

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#1 Inviato 15 January 2013 - 19:06 PM

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:

Spoiler

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.


Modificato da Freddo, 15 January 2013 - 23:28 PM.

Progetto in corso: L'Isola

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#2 Inviato 15 January 2013 - 19:43 PM

Leggi a pagina 31 della guida :wink:

 

Per il colore non ho capito cosa intendi.


Modificato da Holy87, 15 January 2013 - 19:44 PM.

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#3 Inviato 15 January 2013 - 20:51 PM

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

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#4 Inviato 15 January 2013 - 21:00 PM

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#5 Inviato 15 January 2013 - 21:25 PM

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

    Final Andrea
  • Utente avanzato

  • Utenti
  • Rens: 19
  • 0
  • StellettaStellettaStelletta
  • 440 messaggi
  • Sesso:Maschio
  • Provenienza:Torre Del Greco (NA)
  • Abilitā:Esperto

#6 Inviato 15 January 2013 - 21:44 PM

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:



    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#7 Inviato 15 January 2013 - 21:50 PM

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

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#8 Inviato 15 January 2013 - 22:12 PM

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.


Modificato da Holy87, 15 January 2013 - 22:12 PM.

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#9 Inviato 15 January 2013 - 22:36 PM

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

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#10 Inviato 15 January 2013 - 22:41 PM

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#11 Inviato 15 January 2013 - 22:59 PM

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à! :)


Modificato da Freddo, 15 January 2013 - 23:11 PM.

Progetto in corso: L'Isola

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#12 Inviato 15 January 2013 - 23:28 PM

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)


Modificato da ProGM, 15 January 2013 - 23:32 PM.

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Final Andrea
  • Utente avanzato

  • Utenti
  • Rens: 19
  • 0
  • StellettaStellettaStelletta
  • 440 messaggi
  • Sesso:Maschio
  • Provenienza:Torre Del Greco (NA)
  • Abilitā:Esperto

#13 Inviato 16 January 2013 - 14:19 PM

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?



    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#14 Inviato 16 January 2013 - 14:19 PM

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

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#15 Inviato 16 January 2013 - 15:29 PM

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#16 Inviato 16 January 2013 - 16:31 PM

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

    Holy87
  • Prode Guerriero

  • Rpg˛S Staff
  • Rens: 458
  • 6
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 7431 messaggi
  • Sesso:Maschio
  • Provenienza:San Giorgio a Cremano
  • Abilitā:Maestro

#17 Inviato 16 January 2013 - 23:29 PM

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

BannerOverdrive35.png
Cap3.png

578.png
 

Miei script per RPG Maker VX Ace:

Spoiler

 
I miei tutorial:
Spoiler

    Freddo
  • Utente avanzato

  • Utenti
  • Rens: 26
  • 0
  • StellettaStellettaStelletta
  • 379 messaggi
  • Sesso:Maschio
  • Provenienza:Pomezia RM
  • Abilitā:Esperto

#18 Inviato 19 January 2013 - 12:15 PM

Grazie mille Holy! Ho cambiato il codice con le variabili anzi che gameactor e funziona tutto! Sei un grande! I <3 U


Progetto in corso: L'Isola




  • Feed RSS