| 赞 | 49 |
| VIP | 0 |
| 好人卡 | 0 |
| 积分 | 76 |
| 经验 | 0 |
| 最后登录 | 2026-5-28 |
| 在线时间 | 857 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 7556
- 在线时间
- 857 小时
- 注册时间
- 2021-8-28
- 帖子
- 101
|
本帖最后由 Rose_shadows 于 2026-3-8 17:37 编辑
很有意思的想法!这个要做到的话可以参考自由淡入淡出那个例子,因为无法实时获取到图层的真正不透明度,所以要用变量来存储图层的当前不透明度和目标不透明度。
可以这样写:
"opacity": "(function(){var regionId=16;var character=$gamePlayer;var init_opacity=0;var duration=0.5;var vId_opacity=11;var vId_target=12;var f=duration*60;var step=(255-init_opacity)/f;if(!v.value(vId_opacity)){v.setValue(vId_opacity,init_opacity);}if(character.regionId()===regionId){if(v.value(vId_target)!==255){v.setValue(vId_target,255);}var result=Math.min(v.value(vId_target),v.value(vId_opacity)+step);if(v.value(vId_opacity)!==result){v.setValue(vId_opacity, result);}return result;}else{if(v.value(vId_target)!==init_opacity){v.setValue(vId_target,init_opacity);}var result=Math.max(v.value(vId_target),v.value(vId_opacity)-step);if(v.value(vId_opacity)!==result){v.setValue(vId_opacity, result);}return result;}})()"
其中:
regionId - 人物踩在这个ID的区域里淡入图层,不在该区域则淡出图层。例子占用了区域#16。
character - 哪个人物所踩的区域可以决定图层的淡入淡出。例子里的 $gamePlayer 指玩家。
init_opacity - 人物没有踩在区域内时图层的初始不透明度。
duration - 淡入/淡出时长。单位秒。
vId_opacity - 存储当前不透明度的变量ID。只读。例子占用了变量#11。
vId_target - 存储目标不透明度的变量ID。只读。例子占用了变量#12。
所以这个例子的效果是当玩家踩在区域#16时,图层会慢慢显现,离开区域#16时图层则会渐渐消失。 |
|