设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 13405|回复: 44
打印 上一主题 下一主题

[有事请教] 文字转图片插件的卡顿问题

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
跳转到指定楼层
1
发表于 2018-10-15 11:23:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
100星屑
本帖最后由 康姆图帕帕 于 2019-1-3 21:00 编辑

DTextPicture是目前我用着最舒服的文字显示插件,它可以将输入的文字转化为具有图层编号的图片,兼具了显示变量、文本指令、即时更新、无限持续时间、优先度高于图片等各种优点,然而一个不足几乎毁了全部:显示文字过多(差不多半个屏幕以上20号字体)就会开始导致卡顿。

小弟目前猜测是由于spirite的显示方式导致的,想来求大佬帮忙看一下代码,哪里可以优化一下?

-----------------------------------------------------------------------------
由于自定义的需要,我在735行中的  Game_Picture.prototype.show = function()里加入了  pictureId  和  hue  两个参数,如果想正常使用还请删去~~


-----------------------------------------------------------------------------
2019.1.3   10楼的DTP可直接下载使用,以及*重要!!  请使用  D_TEXT_SETTING REAL_TIME ON  指令进行图片的实时显示!并且该事件不要使用并行处理!

DTextPicture.zip

8.21 KB, 下载次数: 186

评分

参与人数 2+2 收起 理由
白嫩白嫩的 + 1 精品文章
wr282828 + 1 塞糖

查看全部评分

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
2
 楼主| 发表于 2018-10-15 16:39:13 | 只看该作者
问题定位了,在rpg_sprite中

Sprite_Picture.prototype.updateBitmap = function() {
    var picture = this.picture();
    if (picture) {
        var pictureName = picture.name();
        if (this._pictureName !== pictureName) {
            this._pictureName = pictureName;
            this._hue = picture.hue();
            this.loadBitmap();
        }
        if (this._pictureName == pictureName) {
            this._hue = picture.hue();
            this.loadBitmap();
        }
        this.visible = true;
    } else {
        this._pictureName = '';
        this.bitmap = null;
        this.visible = false;
    }
};
其中
        if (this._pictureName == pictureName) {
            this._hue = picture.hue();
            this.loadBitmap();
        }
这一段是后来添加的,是为了能够调整图片的色相,正是它导致了DTextPicture的问题,大概就是在图片显示后,反复进行图片色相调整导致卡顿。
求助如何能使图片在没有调整色相的情况下,不会执行这一步骤?
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
3
 楼主| 发表于 2018-10-15 16:46:47 | 只看该作者
改了下,已经解决
        if (this._pictureName == pictureName) {
            if (this._hue !== picture.hue()) {
                    this._hue = picture.hue();
            this.loadBitmap();
            }
        }
感觉自己的人生技能点真是奇葩
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
4
 楼主| 发表于 2018-10-15 16:49:19 | 只看该作者
本问题已经被我体循环了,DTextPicture通常情况下不会导致卡顿,大家放心用吧
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
5
发表于 2018-10-15 17:05:56 | 只看该作者
请教楼主,你这日文看不懂,有中文版说明没?
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
6
 楼主| 发表于 2018-10-15 17:48:01 | 只看该作者
本帖最后由 康姆图帕帕 于 2018-10-15 19:28 编辑
rexuegg123 发表于 2018-10-15 17:05
请教楼主,你这日文看不懂,有中文版说明没?


好的,简单说明一下用法:

D_TEXT [文本内容] [文字大小]
输入要显示的文字,例:D_TEXT 文本内容 20
D_TEXT_SETTING ALIGN [文本位置,0左1中2右]
调整文本基准位置,例:D_TEXT_SETTING ALIGN 0
D_TEXT_SETTING BG_COLOR [背景颜色]
为图片文本添加一个背景色,
例:D_TEXT_SETTING BG_COLOR black
       D_TEXT_SETTING BG_COLOR #336699
       D_TEXT_SETTING BG_COLOR rgba(255,255,255,0.5)
D_TEXT_SETTING REAL_TIME ON
文本能够即时更新(比如文本内有变量)
D_TEXT_SETTING WINDOW ON
文本带有一个窗口框
D_TEXT_SETTING FONT [字体]
选择文本的字体

以及:DTextPicture支持各种文本指令,实测YEP_MessageCore指令也都有效(不知是否为全部)
目前证实可用的指令:

基本指令:
\V[n]   变量
\N[n]   角色名
\P[n]   队员名
\G       货币
\C[n]   文字颜色
\I[n]    图标
\{        字号放大
\}        字号缩小

独特指令:
\V[n,m](显示变量n,并且n有m位数,配合即时显示可以做时间系统12:05:40这种)
\item[n]   物品n图标+名称
\weapon[n]   同上,武器
\armor[n]      同上,防具
\skill[n]         同上,技能
\state[n]       同上,状态
\oc[c]          字体轮廓颜色
\ow[n]         字体轮廓大小
\f[b]            字体加粗
\f[i]            字体倾斜
\f[n]            还原字体加粗与倾斜

其他指令:
楼主试了下,YEP_MessageCore的\it[x](显示状态+图标)是可用的,不知其他指令是否可用

最后,关键的使用方法:
1.使用插件指令"D_TEXT [文本内容] [文字大小]"描绘要显示的文本
2.使用"D_TEXT_SETTING"下的各种指令进行文本的自定义(此项非必要)
3.使用事件页中的"显示图片",调整你的图片文本的编号(为1时无效)、大小、位置、合成方式等种种参数。注意!"图像"选项要留空!*可以使用$gameScreen.showPicture脚本
4.执行本事件。现在,该文本图片本质即是一张图片,能进行通常的移动、震动、旋转、消失等操作。
-------------------------------------------------------------
补充:"显示图片"上可以承载多条D_TEXT指令,文本将被显示为多行
例:D_TEXT 今天天气真好啊 20
       D_TEXT 明明在下雨不要尬聊了 20
       $gameScreen.showPicture(20,"",1,408,312,100,100,255,0)

以上内容将被显示为

不要在意字体

以上内容纯手打,望借鉴。

点评

手打佳诚,感谢楼主!  发表于 2018-10-15 18:44
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
7
 楼主| 发表于 2018-10-15 17:57:36 | 只看该作者
插件的原作者为トリアコンタン(triacontane),是完全公开并免费的
链接地址https://github.com/triacontane
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
8
发表于 2018-10-15 19:18:58 | 只看该作者
楼主,你这个插件的指令时在事件的插件指令中用吗?
比如说“D_TEXT”这个指令怎么用的,你能给个实例、效果图片什么的吗?

点评

我刚刚补充了一些内容,你先看看能不能解惑?  发表于 2018-10-15 19:25
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
9
发表于 2018-10-15 20:54:11 | 只看该作者
楼主,无法显示。
错误类型:

cannot read property 'width' of undefined

点评

我的也时1.5.1,核心代码根本看不懂,哪里还敢改。插件全部关闭后也一样。  发表于 2018-10-16 09:25
可是我除了1L那点外没有改什么东西?你检查下是否改过核心代码,或者关闭其他插件检查冲突?以及我的版本是1.5.1的  发表于 2018-10-15 21:04
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9059
在线时间
1934 小时
注册时间
2016-6-19
帖子
364
10
 楼主| 发表于 2018-10-16 11:02:17 | 只看该作者
rexuegg123 发表于 2018-10-15 20:54
楼主,无法显示。
错误类型:

重新开了个工程,在1L附件里下载了插件装上,还是没有什么问题...



你也开个新工程试试,如果能用,只能说是老工程的问题了。

以及我重新弄了份原版的,也试试吧

DTextPicture.zip

8.21 KB, 下载次数: 153

点评

真的是要崩溃了,继承的是1.3.1的工程,经常有这种好的插件用不了,真是崩溃  发表于 2018-10-16 15:36
试过了,新开工程能用  发表于 2018-10-16 15:32
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 03:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表