Project1

标题: 关于鼠标位置行走图是否透明的问题 [打印本页]

作者: shantianzu    时间: 2024-4-29 08:59
标题: 关于鼠标位置行走图是否透明的问题
请教各位大佬,如何获取鼠标位置的行走图是否为透明的代码应该怎么写?
具体说明就是,有一张行走图,我把鼠标移动到上面,如何辨别鼠标位置下,行走图是透明的部分还是有图像的部分?
作者: 505681468    时间: 2024-4-29 14:18
本帖最后由 505681468 于 2024-4-29 14:21 编辑

不知道有没有插件.......

简单思路 -> character.bitmap.getAlphaPixel(TouchInput.xy - character.xy + character.texture.frame.xy) > 0
当然了,也没试过,反正思路就是判断鼠标在 bitmap 上 textrue 的位置,获取 canvas 上的像素
Bitmap.prototype.getPixel
Bitmap.prototype.getAlphaPixel
作者: 小秋橙    时间: 2024-4-29 14:31
505681468 发表于 2024-4-29 14:18
不知道有没有插件.......

简单思路 -> character.bitmap.getAlphaPixel(TouchInput.xy - character.xy + c ...

行走图在绘制时与逻辑上所在的格子是「下对齐+左右居中」的,并且应该是个长方形。楼主希望精确判断鼠标指针所指的像素点在这个行走图的sprite中是透明点还是非透明点的话,我斗胆猜测一下是不是想做非长方形的按钮然后希望「鼠标指针悬停在非透明区域」时有显示特效?
这个需求老实说很难办,因为鼠标所指的像素点可能有多个行走图重叠起来,也有可能没有行走图而是指在了地图块上……
作者: 505681468    时间: 2024-4-29 14:45
本帖最后由 505681468 于 2024-4-29 15:02 编辑
小秋橙 发表于 2024-4-29 14:31
行走图在绘制时与逻辑上所在的格子是「下对齐+左右居中」的,并且应该是个长方形。楼主希望精确判断鼠标 ...


中心对齐就减去 texture.frame.size 的一半就行了,就会变成左上角对齐

其实就是 character 判断鼠标在自己矩阵内的时候,判断 baseTexture 内的像素
不用太考虑其他的遮挡,如果其他遮挡的是行走图透明像素,那就本身就不是在行走图非透明像素内
如果遮挡了行走图非透明像素,那么也不用考虑,因为会经过 character 自己的非透明判断

作者: shantianzu    时间: 2024-4-29 16:42
505681468 发表于 2024-4-29 14:18
不知道有没有插件.......

简单思路 -> character.bitmap.getAlphaPixel(TouchInput.xy - character.xy + c ...

我主要想改Drill大佬的鼠标触发事件的插件,奈何技术有限。
getAlphaPixel我试了,只能成功一半(只有上半部分行走图可以)。
我把插件发上来,受累帮我看看,提供一些方法,谢谢。

Drill_MouseTriggerEvent.zip

9.49 KB, 下载次数: 2


作者: shantianzu    时间: 2024-4-29 16:44
小秋橙 发表于 2024-4-29 14:31
行走图在绘制时与逻辑上所在的格子是「下对齐+左右居中」的,并且应该是个长方形。楼主希望精确判断鼠标 ...

确实是想做按钮类的,主要是在Drill大佬的插件上修改,我把插件发楼上了,方便的话帮我看看,谢谢
作者: 505681468    时间: 2024-4-29 17:02
shantianzu 发表于 2024-4-29 16:42
我主要想改Drill大佬的鼠标触发事件的插件,奈何技术有限。
getAlphaPixel我试了,只能成功一半(只有上 ...

方便发个配好环境的空白工程吗,太大的话把 img 和 audio 去掉就好




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1