Project1

标题: 求插件,文字居中 与 选项美化 [打印本页]

作者: king    时间: 2016-1-21 12:59
标题: 求插件,文字居中 与 选项美化
本帖最后由 king 于 2016-1-23 12:44 编辑

请大家帮忙解决 有选项美化插件吗?

1.物品帮助的文字居中显示, 如何修改? 默认都是左边

2.选项美化效果, 窗口中的选项被选中的话,是白色,除此以外为灰色(能自定义选项文字的颜色样式)




作者: BBB    时间: 2016-1-22 13:50
Window_Base.prototype.drawText = function(text, x, y, maxWidth, align) {
    this.contents.drawText(text, x, y, maxWidth, this.lineHeight(), align);
};
修改align参数即可,可修改为"left","center","right"
作者: king    时间: 2016-1-22 22:27
BBB 发表于 2016-1-22 13:50
Window_Base.prototype.drawText = function(text, x, y, maxWidth, align) {
    this.contents.drawText( ...

具体如何使用,我直接当插件用,效果比较混乱! 说明窗口文件也没居中

修改, Window_Base  和 Window_Help  也没效果


能直接修改 Window_Help的插件吗?

JAVASCRIPT 代码复制下载
  1. //-----------------------------------------------------------------------------
  2. // Window_Help
  3. //
  4. // The window for displaying the description of the selected item.
  5.  
  6. function Window_Help() {
  7.     this.initialize.apply(this, arguments);
  8. }
  9.  
  10. Window_Help.prototype = Object.create(Window_Base.prototype);
  11. Window_Help.prototype.constructor = Window_Help;
  12.  
  13. Window_Help.prototype.initialize = function(numLines) {
  14.     var width = Graphics.boxWidth;
  15.     var height = this.fittingHeight(numLines || 2);
  16.     Window_Base.prototype.initialize.call(this, 0, 0, width, height,'center');
  17.     this._text = '';
  18. };
  19.  
  20. Window_Help.prototype.setText = function(text) {
  21.     if (this._text !== text) {
  22.         this._text = text;
  23.         this.refresh();
  24.     }
  25. };
  26.  
  27. Window_Help.prototype.clear = function() {
  28.     this.setText('');
  29. };
  30.  
  31. Window_Help.prototype.setItem = function(item) {
  32.     this.setText(item ? item.description : '');
  33. };
  34.  
  35. Window_Help.prototype.refresh = function() {
  36.     this.contents.clear();
  37.     this.drawTextEx(this._text, this.textPadding(),  1);
  38. };


作者: BBB    时间: 2016-1-23 01:22
直接在你的插件里加入这段代码即可居中
Window_Base.prototype.drawText = function(text, x, y, maxWidth, align) {
    this.contents.drawText(text, x, y, maxWidth, this.lineHeight(), "center");
};

往右对其只需要将center修改为right
作者: 在野月光    时间: 2016-1-23 14:02

与菜单按钮等的文字处理不同,
由于游戏开发者输入的描述文字长短不一,
而且可能用到各种符号,又或者需要换行等等,
所以帮助窗口的文字和对话框的文字一样、需要计算转义符,
而且是逐个字去计算显示的位置,
从MV默认的'left' 到 'right' 大概就预留了100像素以内的移位,
所以MV自带的文字对齐功能效果并不明显。如果要让显示效果明显,
那需要对每一个帮助窗口的每一个字的 textState.x 坐标进行修正,包括标点符号。
所以.......  
最后,改帮助窗口文字的默认位置,会直接影响对话框的文字显示。
如果楼主觉得都可以接受,那可以打开 rpg_windows,js 找到:
Window_Base.prototype.processNormalCharacter
在函数drawText一行的右边 height 后面(右括号内),加一个逗号,输入'right',
保存脚本然后查看结果。你会发现,有一点变化,但几乎没什么效果。
然后,也可以在参数 textState.x 后面输入 "+100"(不带引号),再看效果...


MLC_MuneText.rar (860 Bytes, 下载次数: 136)



作者: king    时间: 2016-1-23 19:34
本帖最后由 king 于 2016-1-23 19:54 编辑
在野月光 发表于 2016-1-23 14:02
与菜单按钮等的文字处理不同,
由于游戏开发者输入的描述文字长短不一,
而且可能用到各种符号,又或者需 ...


非常感谢! 选项效果很不错!
如果设置文字透明度,怎么弄?

物品选项,例如: 蚯蚓    :1  
能设置成这样效果吗?
选择被选中的话,是白色,除此以外为半透明
作者: 在野月光    时间: 2016-1-23 21:11
这.....
虽然菜单中物品选项允许玩家键盘鼠标上下左右的选,
但实际上,MV是将全部物品名称都写到同一块底板上的,
然后关联了鼠标键盘操控而已。
我们要弄透明度,实际上就是让这块底板透明,从而影响文字也透明。
换言之,就是要么全部都半透明,要么全部看得见。
如果非要一行看得见,其他看不清,
那就得把清晰的那行字写到另一块板子上对原板进行遮盖,
那要重新计算坐标布局,层主就折腾不起了...
或者楼主自己研究一下吧。
脚本位置: rpg_windows.js
Window_ItemList.prototype.drawItem = function(index)





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1