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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 康姆图帕帕
打印 上一主题 下一主题

[有事请教] 如何处理图片的色相

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9039
在线时间
1932 小时
注册时间
2016-6-19
帖子
364
11
 楼主| 发表于 2018-6-16 15:14:35 | 只看该作者
soulsaga 发表于 2018-6-16 14:10
换了你这个脚本会报错啊..没法测试..
随便给个你改过的默认工程研究下..是不是我MV版本旧了?
其实你也改得 ...

我的是MV1.5.1,升过一次1.6结果崩了
this._hue加了无效,可能是因为sprites里给this.hue赋值的是picture.hue()。
而色相的计算是在core里的Bitmap.prototype.rotateHue下面进行的,manager里图片也是调用的bitmap.rotateHue(hue),和Game_Picture一点关系也没有,而且在objects里调用bitmap相关会出错....
我觉得就是objects根本不认识hue这个变量

Project3.zip

1.4 MB, 下载次数: 34

点评

我用的版本还是1.01..哪里有1.5?  发表于 2018-6-16 15:23
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33178
在线时间
10489 小时
注册时间
2009-3-15
帖子
4756
12
发表于 2018-6-16 17:52:38 | 只看该作者
本帖最后由 soulsaga 于 2018-6-16 18:09 编辑

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();
        }
        this.visible = true;
    } else {
        this._pictureName = '';
        this.bitmap = null;
        this.visible = false;
    }
};

研究出来了..还有rpg_sprites.js这里要改..
亲测成功..
这样色相值就可以传到读取图片那了..

点评

积分也就好看而已..何況这个都算不上积分..不要在意..  发表于 2018-6-16 19:03

评分

参与人数 1+1 收起 理由
康姆图帕帕 + 1 评分上限1就很可惜,我真的想说点肉麻的了X.

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9039
在线时间
1932 小时
注册时间
2016-6-19
帖子
364
13
 楼主| 发表于 2018-6-17 11:26:34 | 只看该作者
soulsaga 发表于 2018-6-16 17:52
Sprite_Picture.prototype.updateBitmap = function() {
    var picture = this.picture();
    if (pictu ...

我又来劳烦了,首先对之前的帮助再次表达感谢
为了让图片在色相变化时能即时更新,我又加了一段判断

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;
    }
};
虽然达到了目的,不过我发现色相的变化似乎是必须要进行一次loadBitmap()的,导致的问题就是整个图片在更新色相时会闪烁,不像更新位置、透明度时那么流畅。
而把this._hue = picture.hue() 放在其他update图片参数下面似乎是无效的,因为没有loadBitmap()...?
所以在MV中,色相更新必须要重加载图片?这可能是一个无法避免的问题?
不过这个问题不算大,我大概可以掩饰过去XDDD
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33178
在线时间
10489 小时
注册时间
2009-3-15
帖子
4756
14
发表于 2018-6-17 12:01:48 | 只看该作者
康姆图帕帕 发表于 2018-6-17 11:26
我又来劳烦了,首先对之前的帮助再次表达感谢
为了让图片在色相变化时能即时更新,我又加了一段 ...

除了读取还有其他方法改变色相么..
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9039
在线时间
1932 小时
注册时间
2016-6-19
帖子
364
15
 楼主| 发表于 2018-6-17 12:13:21 | 只看该作者
soulsaga 发表于 2018-6-17 12:01
除了读取还有其他方法改变色相么..

也是,那些即时更改色相的图片可能只是加了滤镜一类的吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 17:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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