赞 | 170 |
VIP | 6 |
好人卡 | 208 |
积分 | 231 |
经验 | 137153 |
最后登录 | 2024-12-22 |
在线时间 | 8648 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 23068
- 在线时间
- 8648 小时
- 注册时间
- 2011-12-31
- 帖子
- 3367
|
- /*:ja
- * @plugindesc メッセージボックスの文字を中央揃い、右揃いにするプラグインです。
- * @author 村人A
- *
- * @help
- *
- * メッセージ内で指定の行の冒頭で「\#」で中央揃い、[\_]で右揃いにします。
- * ex)メッセージ入力時
- *
- * ここはデフォルト(左揃い)
- * \#ここは中央ぞろい
- * \_ここは右揃い
- * ここはデフォルト(左揃い)
- *
- * となります。
- *
- * 拡大・縮小文字を揃えたい場合はや「\#」や「\_」の前に指定特殊文字「\{」や「\}」を
- * 入力してください。
- * ex)メッセージ入力時
- *
- * ここはデフォルト(左揃い)
- * \{\#ここは一段階大きな文字を中央ぞろい
- * \}}\_ここは一段階小さい文字を右揃い
- * ここは一段階小さい文字を左揃い
- *
- */
- (function() {
- var _Window_Base_initialize = Window_Base.prototype.initialize;
- Window_Base.prototype.initialize = function(x, y, width, height) {
- _Window_Base_initialize.call(this, x, y, width, height);
- this.villaA_paddingleft = 0;
- this.villaA_procLine = 0;
- }
-
- Window_Base.prototype.obtainEscapeCode = function(textState) {
- textState.index++;
- var regExp = /^[\$\.\|\^!><\{\}\\\#\_]|^[A-Z]+/i;
- var arr = regExp.exec(textState.text.slice(textState.index));
- if (arr) {
- textState.index += arr[0].length;
- return arr[0].toUpperCase();
- } else {
- return '';
- }
- };
- Window_Message.prototype.processEscapeCharacter = function(code, textState) {
- switch (code) {
- case ':
- this._goldWindow.open();
- break;
- case '.':
- this.startWait(15);
- break;
- case '|':
- this.startWait(60);
- break;
- case '!':
- this.startPause();
- break;
- case '>':
- this._lineShowFast = true;
- break;
- case '<':
- this._lineShowFast = false;
- break;
- case '^':
- this._pauseSkip = true;
- break;
- case '\#':
- var linelenght = textState.text.split(/\r\n|\r|\n/)
- this.villaA_paddingleft = (this.width - this.textWidth(linelenght[this.villaA_procLine]) - this.newLineX())/2;
- break;
- case '\_':
- var linelenght = textState.text.split(/\r\n|\r|\n/)
- this.villaA_paddingleft = this.width - this.textWidth(linelenght[this.villaA_procLine]) - 20 - this.newLineX();
- break;
- default:
- Window_Base.prototype.processEscapeCharacter.call(this, code, textState);
- break;
- }
- };
- Window_Base.prototype.processCharacter = function(textState) {
- switch (textState.text[textState.index]) {
- case '\n':
- this.processNewLine(textState);
- this.villaA_procLine++;
- break;
- case '\f':
- this.processNewPage(textState);
- break;
- case '\x1b':
- this.processEscapeCharacter(this.obtainEscapeCode(textState), textState);
- break;
- default:
- this.processNormalCharacter(textState);
- break;
- }
- };
- Window_Base.prototype.processNormalCharacter = function(textState) {
- var c = textState.text[textState.index++];
- var w = this.textWidth(c);
- this.contents.drawText(c, textState.x+this.villaA_paddingleft, textState.y, w * 2, textState.height);
- textState.x += w;
- };
- var _Window_Base_processNewLine = Window_Base.prototype.processNewLine
- Window_Base.prototype.processNewLine = function(textState) {
- _Window_Base_processNewLine.call(this, textState);
- this.villaA_paddingleft = 0;
- };
- var _Window_Message_startMessage = Window_Message.prototype.startMessage
- Window_Message.prototype.startMessage = function() {
- _Window_Message_startMessage.call(this);
- this.villaA_procLine = 0;
- }
- })();
复制代码 |
|