THE NVL Maker

 找回密码
 注册
搜索
查看: 5405|回复: 10

[系统修改] 关于tjs实现图片去色的问题

[复制链接]

3

主题

12

帖子

0

精华

游戏开发者

积分
12
发表于 2022-1-4 14:45:15 | 显示全部楼层 |阅读模式
我想请教一下,在界面中放入一张图片后,是否可以实现将其指定区域内去色,其它区域正常显示?或者有没有近似的效果的实现方法?
感谢!!!
回复

使用道具 举报

16

主题

993

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1014
发表于 2022-1-4 15:17:20 | 显示全部楼层
可以整张图片去色
可以将一张图片的一部分区域盖到另外一张图片上(copyRect)
因此如果用一张灰色图片(彩色图片加载到图层里然后使用action里的效果变灰色)和一张原来的彩色图片,实际显示的是彩色图片+贴上了灰色的一小块
应该可行?
但这个指定区域只能是方形。如果要不规则图形就得想别的办法了。
回复

使用道具 举报

3

主题

12

帖子

0

精华

游戏开发者

积分
12
 楼主| 发表于 2022-1-4 15:42:57 | 显示全部楼层
本帖最后由 寒少 于 2022-1-4 15:44 编辑

感谢D大,那现在就两种方案,多张图片独立去色,或者单张图片,覆盖多张灰度图片。我先做出来看看效果吧
回复

使用道具 举报

3

主题

12

帖子

0

精华

游戏开发者

积分
12
 楼主| 发表于 2022-1-10 13:46:54 | 显示全部楼层
VariableD 发表于 2022-1-4 15:17
可以整张图片去色
可以将一张图片的一部分区域盖到另外一张图片上(copyRect)
因此如果用一张灰色图片(彩 ...

D大,可否给一个copyRect的使用示例,文档里没有翻到
回复

使用道具 举报

16

主题

993

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1014
发表于 2022-1-10 17:23:09 | 显示全部楼层
copyRectKAG系统里面本身用得蛮多,可以直接grep搜索,不过应该是layer class的内容(kr2文档)。里面有每个参数的详细说明。
Layer.copyRect機能/意味矩形コピータイプLayerクラスのメソッド
構文copyRect(dleft, dtop, src, sleft, stop, swidth, sheight)
引数
dleft コピー先の矩形の左端位置を ( コピー先レイヤの画像位置における ) ピクセル単位で指定します。
dtop コピー先の矩形の上端位置を ( コピー先レイヤの画像位置における ) ピクセル単位で指定します。
src コピー元のレイヤオブジェクトを指定します。
sleft コピーする矩形の左端位置を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
stop コピーする矩形の上端位置を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
swidth コピーする矩形の横幅を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
sheight コピーする矩形の縦幅を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
戻り値なし (void)
説明 指定されたコピー元レイヤの矩形部分を自分のレイヤの指定位置にコピーします。
 コピーされる画像は、コピー先レイヤ ( メソッドを実行するレイヤ ) の Layer.face プロパティの値によって変わります。
[url=]dfAlpha[/url] (または dfBoth) : メイン画像とマスク画像がコピーされます
[url=]dfAddAlpha[/url] : メイン画像とマスク画像がコピーされます
[url=]dfOpaque[/url] (または dfMain) : Layer.holdAlpha プロパティが真の場合は、メイン画像のみがコピーされます ( マスク画像はコピーされません )。偽の場合はメイン画像とマスク画像がコピーされます
[url=]dfMask[/url] : マスク画像のみがコピーされます ( メイン画像はコピーされません )
[url=]dfProvince[/url] : 領域画像のみがコピーされます ( マスク画像やメイン画像はコピーされません )
 コピー元のレイヤの Layer.face プロパティは無視されます。
 このメソッドは、Layer.holdAlpha の影響は受けません (dfAlpha や dfAddAlpha の場合は holdAlpha に関わらずマスク画像もコピーされます)


回复

使用道具 举报

3

主题

12

帖子

0

精华

游戏开发者

积分
12
 楼主| 发表于 2022-1-10 20:23:02 | 显示全部楼层
我想把12层的半透明图片B盖进13层的A上,结果是A被扣了一块,是哪里有错误吗?
[iscript]
kag.fore.layers[13].face=dfAlpha;
kag.fore.layers[13].visible=true;
kag.tagHandlers.image(%[storage: "A", page: "fore", layer:"13",left:100,top:100]);
kag.tagHandlers.image(%[storage: "B.png", page: "fore", layer:"12",left:0,top:0]);

kag.fore.layers[13].copyRect(0, 0, kag.back.layers[12], 100, 100, 300, 300);       
//kag.fore.layers[13].visible=false;
[endscript]
回复

使用道具 举报

16

主题

993

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1014
发表于 2022-1-10 21:42:28 | 显示全部楼层
12你载入的是fore,copy的是back
回复

使用道具 举报

3

主题

12

帖子

0

精华

游戏开发者

积分
12
 楼主| 发表于 2022-1-11 09:26:20 | 显示全部楼层
依旧是A被扣下去了一块
[iscript]

kag.fore.layers[13].visible=true;
kag.tagHandlers.image(%[storage: "A.png", page: "fore", layer:"13",left:100,top:100]);
kag.tagHandlers.image(%[storage: "B.png", page: "back", layer:"12",left:0,top:0]);

kag.fore.layers[13].copyRect(0, 0, kag.back.layers[12], 100, 100, 300, 300);       

[endscript]
回复

使用道具 举报

3

主题

12

帖子

0

精华

游戏开发者

积分
12
 楼主| 发表于 2022-1-11 18:41:45 | 显示全部楼层
VariableD 发表于 2022-1-10 21:42
12你载入的是fore,copy的是back

还是没有弄明白,捂脸
回复

使用道具 举报

16

主题

993

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1014
发表于 2022-1-12 18:46:25 | 显示全部楼层
啊,看了一下,倒也不是……
我一般是直接用的TJS layer(new layer那种),所以没怎么研究过tagHandlers怎么处理这个。
//比如这种,这样加载图片,先看看两个图能不能正常显示,再叠一个区块上去。
var layer=new Layer(kag, kag.fore.stage);
layer.loadImages("face_setting_sample");
layer.setSizeToImageSize();

然后比如参数里面的100,100,300,300这种,最好都先从确定的0,0位置开始。
搞清楚它那个参数复制的是哪一块,有没有成功叠到,再来调参数。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|nvlmaker

GMT+8, 2024-5-20 21:21 , Processed in 0.011764 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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