Ciao raga. Dunque quanto inserirò in questo post non è ne un plugin completo e ne un tutorial. Ma voglio condividere con voi una serie di mie scoperte che ho fatto pasticciando con il linguaggio Javascript.
(Non so se è questa la sezione giusta. In caso non lo fosse, mi scuso)
Dunque per chi non vuole riempire il proprio Gestione Plugin di elementi esterni e magari preferisce fare delle aggiunzioni utilizzando direttamente i plugin che ha già a disposizione, vi esorto a seguire questo post. Che si andrà aggiornando ogni qualvolta scoprirò qualcosa di nuovo.
Pertanto iniziamo!
1. Per chi volesse Personalizzare il proprio Scene_Title:
Di default tutti noi abbiamo a nostra disposizione degli script che racchiudono a loro interno plurime classi.
Esattamente come nell'Rgss1/2/3, per creare una scena occorre elaborarla e costruire la finestra che la ospiterà.
Ma per evitare di farla da zero, si può ovviare la cosa, decidendo di modificare quella che già ci fornisce il programma.
Qui di seguito vi spiegherò come fare:
1. Andate tramite un vostro programma di Script editor nel folder js del vostro nuovo progetto.
(è essenziale che ne creiate uno nuovo, per fare i vostri esperimenti così da evitare di fare errori)
(per il programma di Script editor, io consiglio Sublime Text 2.
In questo link spiego come lo si può sincronizzare all'Rpg Maker Mv:)
http://www.rpg2s.net...u-rpg-maker-mv/
Una volta aperto il vostro Script Editor, Selezionate il file rpg_scenes.js .
2. Recatevi alla riga 228.
La porzione di codice da prendere in esame sarà dalla riga 228 fino alla riga 353.
3. All'interno di questa porzione di codice recatevi alla riga 278:
Se volete Modificare lo sfondo e la cornice da far visualizzare nella Scena del Titolo:
Sostituite questo metodo:
Scene_Title.prototype.createBackground = function() { this._backSprite1 = new Sprite(ImageManager.loadTitle1($dataSystem.title1Name)); this._backSprite2 = new Sprite(ImageManager.loadTitle2($dataSystem.title2Name)); this.addChild(this._backSprite1); this.addChild(this._backSprite2); };
Con quest'altro:
Scene_Title.prototype.createBackground = function() { this._backSprite1 = new Sprite(ImageManager.loadTitle1("NOMESFONDO")); this._backSprite2 = new Sprite(ImageManager.loadTitle2("NOMECORNICE")); this.addChild(this._backSprite1); this.addChild(this._backSprite2); };
Sostituite "NOMESFONDO" con il nome (senza estensione) del vostro file presente in img/title1 del vostro progetto
Sostituite "NOMECORNICE" con il nome (senza estensione) del vostro file presente in img/title2 del vostro progetto
4. All'interno di questa porzione di codice recatevi alla riga 284:
Se volete Modificare le proporzioni della finestra (invisibile) in cui alloggia l'oggetto "Nome del vostro Titolo di gioco"
sostituite questo Metodo:
Scene_Title.prototype.createForeground = function() { this._gameTitleSprite = new Sprite(new Bitmap(Graphics.width, Graphics.height)); this.addChild(this._gameTitleSprite); if ($dataSystem.optDrawTitle) { this.drawGameTitle(); } };
Con quest'altro:
Scene_Title.prototype.createForeground = function() { this._gameTitleSprite = new Sprite(new Bitmap(200, 100)); this.addChild(this._gameTitleSprite); if ($dataSystem.optDrawTitle) { this.drawGameTitle(); } };
5. All'interno di questa porzione di codice recatevi alla riga 292:
Se volete Modificare la posizione dell'Oggetto "Nome del Titolo del vostro Gioco"
sostituite questo Metodo:
Scene_Title.prototype.drawGameTitle = function() { var x = 20; var y = Graphics.height / 4; var maxWidth = Graphics.width - x * 2; var text = $dataSystem.gameTitle; this._gameTitleSprite.bitmap.outlineColor = 'black'; this._gameTitleSprite.bitmap.outlineWidth = 8; this._gameTitleSprite.bitmap.fontSize = 72; this._gameTitleSprite.bitmap.drawText(text, x, y, maxWidth, 48, 'center'); };
Con quest'altro:
//Modifica l'oggetto "Titolo di Gioco". Scene_Title.prototype.drawGameTitle = function() { /////////////////////////////////////////////// //// LOCALIZZAZIONE SUL PIANO CARTESIANO //// var x = 0; //Ascissa (coordinata x ) //// var y = 0; //Ordinata (coordinata y ) //// /////////////////////////////////////////////// /////////////////////////////////////////////////// ///// IMPOSTA LE DIMENSIONI DELL'OGGETTO //// var maxWidth = 300; //Determina Larghezza //// var maxHeight = 30; //Determina L'Altezza //// /////////////////////////////////////////////////// /////////////////////////////////////////////////// //// IMPOSTA TITOLO DI GIOCO //// var text = $dataSystem.gameTitle; //// /////////////////////////////////////////////////// //////////////////////////////////////////////////// //// IMPOSTA IL NOME DEL FONT DA UTILIZZARE //// this._gameTitleSprite.bitmap.fontName = 'Arial' //// //////////////////////////////////////////////////// ////////////////////////////////////////////////////////// //// IMPOSTA IL COLORE E LA DIMENSIONE DEI BORDI //// this._gameTitleSprite.bitmap.outlineColor = 'black'; //// this._gameTitleSprite.bitmap.outlineWidth = 8; //// this._gameTitleSprite.bitmap.outlineHeight = 8; //// ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// //// IMPOSTA IL COLORE E LA DIMENSIONE DEL TESTO //// this._gameTitleSprite.bitmap.inlineColor = 'white'; //// this._gameTitleSprite.bitmap.fontSize = 72; //// ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// //// DETERMINA TESTO, LOCALIZZAZIONE, GRANDEZZE E CENTRALITA' DELL'IMMAGINE OGGETTO //// this._gameTitleSprite.bitmap.drawText(text, x, y, maxWidth, maxHeight, 'center'); //// /////////////////////////////////////////////////////////////////////////////////////////// };
6. All'interno di questa porzione di codice recatevi alla riga 303 :
Se volete modificare la posizione della vostra immagine di Sfondo
sostituite questo Metodo:
Scene_Title.prototype.centerSprite = function(sprite) { sprite.x = Graphics.width / 2; sprite.y = Graphics.height / 2; sprite.anchor.x = 0.5; sprite.anchor.y = 0.5; };
Con quest'altro:
Scene_Title.prototype.centerSprite = function(sprite) { sprite.x = 408; // di default è 408; sprite.y = 312; // di default è 312; sprite.anchor.x = 0.5; sprite.anchor.y = 0.5; };
7. All'interno di questa porzione di codice recatevi alla riga 310 :
Se desiderate Modificare o Aggiungere comandi al vostro MenuPrincipale,
sostituite questo Metodo:
Scene_Title.prototype.createCommandWindow = function() { this._commandWindow = new Window_TitleCommand(); this._commandWindow.setHandler('newGame', this.commandNewGame.bind(this)); this._commandWindow.setHandler('continue', this.commandContinue.bind(this)); this._commandWindow.setHandler('options', this.commandOptions.bind(this)); this.addWindow(this._commandWindow); };
Con quest'altro:
Scene_Title.prototype.createCommandWindow = function() { this._commandWindow = new Window_TitleCommand(); this._commandWindow.setHandler('newGame', this.commandNewGame.bind(this)); this._commandWindow.setHandler('continue', this.commandContinue.bind(this)); this._commandWindow.setHandler('options', this.commandOptions.bind(this)); /////////////////////////////////////////////////////////////////////////////////////////// ///// NUOVO COMANDO CREATO DA ZERO //// this._commandWindow.setHandler('Shutdown', this.commandExitGame.bind(this)); //// /////////////////////////////////////////////////////////////////////////////////////////// this.addWindow(this._commandWindow); };
Il mio consiglio è di non tradurre i nomi imposti sotto gli apici, perché tradurli recherebbe qualche fastidio.
Piuttosto usate questa porzione di codice per aggiungere (se lo volete ) qualche comando in più.
8. All'interno di questa porzione di codice recatevi alla riga 318 :
Se volete cambiare la meta di destinazione, una volta selezionato il comando NuovaPartita,
sostituite questo:
Scene_Title.prototype.commandNewGame = function() { DataManager.setupNewGame(); this._commandWindow.close(); this.fadeOutAll(); SceneManager.goto(Scene_Map); };
Con:
Scene_Title.prototype.commandNewGame = function() { DataManager.setupNewGame(); this._commandWindow.close(); this.fadeOutAll(); SceneManager.goto(Scene_QUELLOCHEVOLETEVOI); };
Sostituite Scene_QUELLOCHEVOLETEVOI con il nome della scena che desiderate far eseguire una volta selezionato il comando.
9. Dopo la riga 333 :
Se al metodo della riga 310 avrete inserito un nuovo comando, toccherà definirne il metodo. Quindi come potete notare
dai metodi commandContinue e commandOptions, lasciate una riga vuota e subito dopo inserite questo codice:
////////////////////////////////////////////////////////////////////////////// //// IO AD ESEMPIO HO CREATO IL COMANDO SHUTDOWN OVVERO TERMINA IL GIOCO //// Scene_Title.prototype.commandExitGame = function() { //// this._commandWindow.close(); //// window.close(); //// }; //// //////////////////////////////////////////////////////////////////////////////
Ho scoperto che potete far eseguire lo SHUTDOWN attraverso 2 modi. Il primo è quello che ho riportato sopra. Il codice è semplice
ed anche immediato. Però il tutto si chiuderà a mio pare male. Non so spiegarvelo ehm tipo di botto senza nessun Decision.se che
conferma la cosa. Nulla. Schiacci il comando Shutdown e chiudi tutto.
L'altro modo invece è il seguente:
Scene_Title.prototype.commandShutdown = function(){ this._commandWindow.close(); this.fadeOutAll(); //window.close(); SceneManager.exit(); };
Quest'ultimo lo reputo migliore. Si presenta bene. Comunque io ve li posto tutti e due così anche voi sarete liberi di scegliere secondo
il vostro gusto.
10. All'interno di questa porzione di codice recatevi alla riga 353 :
Scusate se non sono riuscito a completare il post ieri sera.
Ma ho avuto delle controversie (e le ho tutt'ora) per cercare di acquisire il pieno controllo del metodo qui presente:
Scene_Title.prototype.playTitleMusic = function() { AudioManager.playBgm($dataSystem.titleBgm); AudioManager.stopBgs(); AudioManager.stopMe(); };
Che tanto innocuo e tanto onesto...pare! Ma non lo è affatto!
Però sono riuscito a conquistare il controllo sulla possibilità di impostare il volume, aggiungendo questa linea di codice appena sotto playBgm .
Scene_Title.prototype.playTitleMusic = function() { AudioManager.playBgm($dataSystem.titleBgm); AudioManager.bgmVolume = 100 //di cui 0 = muto && 100 = Volume Massimo AudioManager.stopBgs(); AudioManager.stopMe(); };
Ho potuto appurare che è difficilissimo poter modificare le impostazioni di default per scegliere un bgm direttamente dallo
script. Sembrerebbe che non esista il metodo. O forse sono troppo tonto per capirlo. Comunque (deluso) momentaneamente
stoppo qui con la questione suoni di gioco. Anzi se ci sta qualcuno che ne sa qualcosa, please nei commenti.
11. Nel caso in cui aveste inserito un nuovo comando. Pertanto avrete modificato il metodo della riga 310 e dopo la riga 333.
Recatevi questa volta all'interno di rpg_window.js e lì dentro cercate dalla riga 5705 alla 5760
Sarete all'interno di Window_TitleCommand ovvero la finestra che ospita Scene_Title.
Dentro questa porzione di codice, recatevi alla riga 5739
e sostituite questo metodo:
Window_TitleCommand.prototype.makeCommandList = function() { this.addCommand(TextManager.newGame, 'newGame'); this.addCommand(TextManager.continue_, 'continue', this.isContinueEnabled()); this.addCommand(TextManager.options, 'options'); };
Con quest'altro:
Window_TitleCommand.prototype.makeCommandList = function () { var parameters = PluginManager.parameters('rpg_scenes'); var shutdown_name = parameters['Name'] || "Shutdown" ; this.addCommand ( TextManager.newGame , 'newGame' ); this.addCommand ( TextManager.continue_ , 'continue' , this.isContinueEnabled ()); this.addCommand ( TextManager.options , 'options' ); this.addCommand ( shutdown_name , 'shutdown' ); };
Rimanendo in questa porzione di codice appena modificata ^^^^ Se volete Modificare il nome dei vostri nuovi comandi, basterà
rinominare questa stringa:
var shutdown_name = parameters['Name'] || "NOMEDELCOMANDO" ;
Sostituendo Entro gli apici il NOMEDELCOMANDO secondo l'uso che preferite.
Le altre voci invece verranno tradotte automaticamente dal programma rpg Maker Mv.
12. Rimanendo in rpg_window.js, recatevi adesso alla riga 5734.
Se volete modificare la posizione di una qualsiasi finestra presente in gioco.
(io rimanendo a tema, prenderò in esempio Window_TitleCommand)
Sostituite questo metodo:
Window_TitleCommand.prototype.updatePlacement = function() { this.x = (Graphics.boxWidth - this.width) / 2; this.y = Graphics.boxHeight - this.height - 96; };
Con quest'altro:
Window_TitleCommand.prototype.updatePlacement = function() { this.x = 270; //di default è 270 this.y = 280; //di default è 280 };
13.Dimenticavo! Recatevi adesso alla riga 5730:
Se volete modificare la Larghezza di una qualsiasi finestra (es: Window_TitleCommand)
Modificate il valore numerico posto dopo il return, presente in questo metodo:
Window_TitleCommand.prototype.windowWidth = function() { return 240; // di default è 240 };
Se volete modificare l'altezza di una finestra: dopo linea 5732, lasciate un rigo vuoto e subito dopo inseritegli quest'altro metodo:
Window_TitleCommand.prototype.windowHeight = function() { return 180; // di default è 180; };
Per adesso, ma solo per adesso, questo è tutto. Spero che io riesca a scoprire altri metodi da mostrare. Comunque in caso di nuovi aggiornamenti posterò sempre qui. Bella gente e alla prossima
Modificato da Lomax_Iced, 25 November 2015 - 18:51 PM.