Skip to content

关于鼠标拖拽图片

相关插件

基于核心:

◆Drill_CoreOfDragAndAdsorb 数学模型 - 拖拽与吸附核心

◆Drill_CoreOfPictureWithMouse 图片 - 图片与鼠标控制核心

主要插件如下:

◆Drill_PictureDraggable 图片 - 可拖拽的图片

◆Drill_PictureAdsorptionSlot 图片 - 图片吸附槽

目前鼠标拖拽、吸附槽只能实现部分简单拖拽的功能,

不建议以此来制作复杂的装备卡牌功能。

名词索引

以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:

可拖拽的图片拖拽 拖拽偏移量拖拽清零 拖拽合并触发拖拽范围 最大同时拖拽数量
图片吸附槽吸附 吸附槽 吸附偏移量吸附清零 吸附合并 断开吸附吸附类型 最大吸附数量 拖拽后可脱离槽必然吸附 一般吸附 交换吸附

插件关系

插件相互存在依赖关系,如下图:

可拖拽的图片

定义

1)拖拽

拖拽: 是指将一张图片从 一个位置拖移到另一个位置 的过程。

只要拖拽没有 合并,那么原位置(图中虚线)是一直被记录的,可随时归位。

2)拖拽偏移量

拖拽偏移量: 指将图片拖拽后,图片的位置与原位置的距离差。

分为X轴偏移量和Y轴偏移量。可以为负数。

拖拽清零: 清零后,图片迅速归位到 原位置。

拖拽合并: 合并后,原位置 将变为图片现在所处的位置,并以此位置为基准。

如果你要控制含拖拽的 图片 移动位置,最好先合并一下偏移量。避免 快捷变换操作 移动到绝对位置时出现位置偏差。

图片的拖拽设置

1)指令顺序

你必须先显示图片,再添加可拖拽属性,顺序不能反。

2)触发拖拽范围

触发拖拽范围: 指鼠标在点击时,图片变为 拖拽状态 的触发范围。

触发拖拽范围默认就是 碰撞体的范围,旋转、缩放、斜切 都会影响碰撞体的范围。

设置图片素材时,注意避免使用大范围都是空白透明的图片,

因为触发范围太大不适合拖拽,需要切割一下。

拖拽范围默认为 碰撞体判定,即资源图片的矩形区域。你可以修改为 像素判定,即根据图片里面的像素点是否透明来决定 是否悬停。详细可见:“16.图片 > 关于图片与鼠标控制核心.docx”。

3)作用域

图片可以在 战斗界面和地图界面 放置。

因此,鼠标拖拽能在 战斗界面和地图界面 中有效。

鼠标的拖拽设置

1)拖拽按键

你可以通过插件指令控制鼠标的拖拽按键:

2)最大同时拖拽数量

鼠标点击时,可以设定只有一张图片被拖拽,或多张图片同时被拖拽。

3)自动置顶图片

鼠标拖拽时,图片会自动置顶。

如果其它图片通过图钉钉在当前拖拽图片,图钉的图片也会一起被置顶。

图片吸附槽

定义

1)吸附

吸附: 是指当一张图片靠近一个吸附槽时,吸附槽 解除图片拖拽,并使图片移动到吸附槽中心点位置的过程。

吸附槽: 指能将图片吸附的对象。(如图中的圆形)

使用插件指令“>图片吸附槽 : DEBUG吸附槽范围查看 : 开启”,

可以看到 吸附槽 和 图片锚点。

吸附槽会吸附图片有几个条件:

图片锚点在吸附范围内

(槽能定义范围,可以是圆形可以是方形)

吸附类型相同

(图片能加吸附类型,槽能加吸附类型,两类型至少一个匹配才会吸附)

最大吸附数量未满

(槽吸附图片有数量限制,一般为1)

吸附的详细介绍可以结合示例中 图片管理层 进行了解。

2)吸附偏移量

吸附偏移量: 指将图片被吸附后,图片的位置与原位置的距离差。包含了拖拽偏移量。

分为X轴偏移量和Y轴偏移量。可以为负数。

吸附清零: 清零后,图片迅速归位到 原位置。

注意,吸附清零 包括 拖拽清零,执行吸附清零即 吸附+拖拽 同时清零。

吸附合并: 合并后,原位置 将变为图片现在所处的位置,并以此位置为基准。

注意,吸附合并 包括 拖拽合并,执行吸附合并即 吸附+拖拽 同时合并。

如果你要控制吸附的 图片 移动位置,最好先合并一下偏移量。避免 快捷变换操作 移动到绝对位置时出现位置偏差。

3)断开吸附

断开吸附: 是指吸附条件发生改变,造成图片与吸附槽无法继续吸附,从而断开的过程。

断开吸附后图片会立即归位,这个过程没有吸附动画。

对于玩家来说,图片突然瞬移可能看着有些不顺眼。

(断开吸附的效果与插件指令”立即清零吸附偏移量”一样)

插件只能在吸附时控制图片的位置与动画过程。如果某些特殊情况使得插件失去对图片的控制,则图片会立即归位到原位置。

下面情况会断开吸附:

图片被删除

图片的吸附功能被关闭

图片去除了相关吸附类型

吸附槽被删除

吸附槽修改了最大吸附数量,数量比 已吸附图片数量 还要小

吸附槽去除了相关吸附类型

你可以在执行 断开吸附 的指令前,合并吸附位置。这样断开吸附后,图片才不会出现瞬移现象。

4)吸附类型

图片有自己的吸附类型。(删除图片后配置的类型会清空)

槽有自己的吸附类型。(删除槽后配置的类型会清空)

图片可以有多个吸附类型,槽也可以有多个吸附类型。

图片与槽只要有一个吸附类型能对应,则槽就能吸附图片。

图片只能通过插件指令添加吸附类型:

槽可以配置样式,也可以通过插件指令添加吸附类型:

注意,如果在图片吸附时 操作去掉 槽的吸附类型、图片的吸附类型,则图片会根据吸附情况 自动 断开吸附

槽的吸附控制

1)自定义样式

吸附槽能在插件中自定义样式。

创建吸附槽时,需要指定样式创建。

2)槽类型 - 必然吸附

必然吸附:只要图片锚点进入必然吸附范围,就一定会被吸附。

鼠标拖拽经过也会被解除拖拽并吸附。

如下图的小圆圈,必然吸附的范围通常都设置比较小,或者直接关闭。

3)槽类型 - 一般吸附

一般吸附:图片进入一般吸附范围后,如果未被鼠标拖拽,才会被吸附。

如果图片是自己移动时经过了一般吸附范围,那么该图片也会被吸附。

如下图的大圆圈,一般吸附的范围通常会设置比较大。

4)槽类型 - 交换吸附

交换吸附: 图片如果已被吸附,进入不同的交换吸附范围,可以瞬间切换吸附槽。

图片如果还没被吸附,则进入交换吸附范围就会被必然吸附。

如果切换的吸附槽已经满了,则目标槽会取出一个图片过来交换吸附。

简单来说,交换吸附就是为“交换”而存在,两个吸附槽之间可以相互交换图片。

可以去看示例中 图片管理层 小爱丽丝专门介绍。

5)最大吸附数量

吸附槽可以设定最大吸附数量。

示例中 图片管理层 有小爱丽丝专门介绍。

注意,如果在图片吸附时 操作减少 最大吸附数量,则图片会根据吸附情况 自动 断开吸附

6)拖走过程

当图片被吸附之后,使用鼠标拖拽,可以拖走图片。

拖走图片时,原来的吸附槽会暂时停止吸附。

此时如果开启了“DEBUG吸附槽范围查看”,可以看到图片的状态为“拖走吸附”。

图片被吸住时,必须要鼠标拖才可以拖走。只通过事件指令无法移动吸附的图片。

7)设计吸附槽注意事项

两个吸附槽之间不要重叠,也不要靠的太近。

因为拖走时只会暂时停止当前槽的吸附,如果另一个槽在,那么会被另一个立即吸走。

如果设计场景中必须要非常接近(比如扑克牌)。

可以考虑使用交换吸附,或者将吸附范围改成方形。

图片的吸附控制

1)插件指令添加属性

图片只能通过插件指令添加吸附类型:

图片与吸附槽关系可以见前面章节:吸附类型

2)吸附功能开关

图片可以设置吸附功能开关,

创建图片后,默认吸附功能都为开启状态。

注意,如果在图片吸附时 关闭图片吸附功能,则图片会立即 断开吸附

3)拖拽后可脱离槽

图片可以修改 拖拽脱离槽 的开关,

默认为开启状态,即可以脱离槽。

注意,此功能只能确保图片拖出范围时,又会被吸回去。

如果是 断开吸附 的情况,则无法吸回去。

从零开始设计(DIY)

设计拼图解谜

示例中的 设计-限时拼图 就是基于 拖拽插件与吸附插件 设计出来的谜题。

你可以去看看“14.鼠标 > 解谜设计-限时拼图.docx”。

拼图解谜可以设计成两种类型:

传统型(一个个拼图碎片拖进拼图板)

交换型(拼图碎片随机分布在拼图板内,拖拽拼图碎片能交换碎片位置)

具体可以去 设计-限时拼图 的第二关解谜。

设计书本交换解谜

1. 设置一个目标

2023年2月11日,作者我在看 逆风笑up主 的视频时 看见了类似的解谜。

《A Little to the Left》

https://www.bilibili.com/video/BV1vd4y1r7Vu/

当时吸附槽功能还没 交换吸附 的功能,然后作者我记了个坑,没填。

后来,2024年4月,作者我对所有 图片类 插件进行大更新,然后我想起了这个。

这个功能看起来很简单,于是我开坑了。

然后我就经历了一整个星期的数学模型构建的折磨。w(゚Д゚)w

看起来的简单功能,实际上一点都不简单。

2. 结构规划/流程梳理

》槽有三种类型:必然吸附、一般吸附、交换吸附。

要设计书本的解谜,使用 交换吸附。

》书本不能被拖走,所以要关闭可脱离槽设置。

》注意配置细节:

吸附槽最大吸附数量为1;

拖拽最大数量为1;

吸附类型自定义为:书本。

》解谜时,需要书本的花纹,作者我想了想,就用字母与单词好了:drill_up。

3. 素材设计

要形成书本+字母的解谜,

“drill_up”一共有8个字母,但”l”是重复的,所以只需要画7张书本图片即可。

绘制书本图形,这里作者我使用的时矢量工具画图。

画一个圆角矩形,加阴影渐变,加花纹,加上下高亮的边角,最后再加字母即可。

PS也可以画书本,使用形状工具即可。

最后画出了七个书本图像:

4. 图片与吸附槽设计

根据前面的规划,样式设计如下。

吸附槽可以为动态,考虑到这里是量子妹世界的书本,所以这里开启了浮动效果。

使用插件指令建立8个交换吸附槽。

画出来的图片宽度为86,所以每隔90像素放置一个槽。

然后,按顺序摆出 drill_up 的全部字符。(方便写判断)

吸附到槽时,设置为乱序。

在游戏中测试效果如下,

通过鼠标拖拽,能实现书本交换。

5. 顺序判定与校验

判定用到了数组插件:

Drill_CoreOfNumberArray 系统-变量数组核心

书本数量为8,对应 1,2,3,4,5,6,7,8 槽。

其中字母"l"是重复的,所以 4,5 和 5,4 都能通过。

所以使用下面的插件指令:

将判断结果存储到 开关21,22。

只要有一个开关符合,就通过,

所以判断的指令如下。

通过上述方式,即可完成交换界面的全部流程。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史